PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

2014-06-01 BaoXinjian

一、摘要

在开发报表时,客户有时候会要求在运行报表后,系统自动会将报表的结果发送至客户邮箱

遇到这种情况,有很多的技术去实现,包括workflow,alert,utl_mail等等

之前做过一个小需求将invoice结果发送给客户如下

做需求必须分析以下几个构建

  • 程式的Layout存放在服务器哪个目录下
  • 在database directory表中是否建立该路径的虚拟路径
  • utl_file如何去读文件
  • utl_mail如何去发邮件

 

二、案例

需求:将Invoice程式的输出结果自动发送给客户邮箱

    1. 报表默认输出方式

    2. 报表的最终的方式为PDF

    3. 运行报表,查看layout

    4. 其layout显示

    5. 其layout的存放的位置

    6. 建立改路径

    7. 使用测试脚本

    8. 收到email

 

三、案例实现

Step1. 报表默认输出方式

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step2. 报表的最终的方式为PDF

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step3. 运行报表,查看layout

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step4. 其layout显示

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step5. 其layout的存放的位置

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step6. 建立改路径

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step7. 使用测试脚本

PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)
 1 DECLARE
 2 
 3    p_request_id   VARCHAR2 := 19087352;
 4 
 5    l_output       UTL_FILE .file_type ;
 6 
 7    l_file         RAW (32767);
 8 
 9    l_size         NUMBER;
10 
11    BLOCK          NUMBER;
12 
13    b              BOOLEAN;
14 
15 BEGIN
16 
17    UTL_FILE.FGETATTR (C_CONC_REQOUT_DIR ,C_AP_SPLITTER_R_ || p_request_id || _1.PDF,
18 
19                                    b,
20 
21                                    l_size ,
22 
23                                    BLOCK);
24 
25  
26 
27    l_output :=  UTL_FILE .fopen (C_CONC_REQOUT_DIR,  C_AP_SPLITTER_R_ || p_request_id || _1.PDF,  r);
28 
29  
30 
31    UTL_FILE.get_raw (l_output, l_file, l_size);
32 
33  
34 
35    UTL_FILE.fclose (l_output);
36 
37  
38 
39    UTL_MAIL.SEND_ATTACH_RAW (sender         => bao@motorola.com,
40 
41                              recipients     => bcrp67@motorola.com,
42 
43                              subject        => subject,
44 
45                              attachment     => l_file,
46 
47                              MESSAGE        => messge,
48 
49                              att_inline     => FALSE,
50 
51                              att_filename   => C_AP_SPLITTER_R_ || p_request_id || _1.PDF);
52 
53 END;
PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step8. 收到email

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

 

Thanks and Regards

 PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例),布布扣,bubuko.com

PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

上一篇:vertica时间计算SQL语句实例:统计一天内登录的用户


下一篇:C语言的文件操作,详解(上)