码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2014-06-02 09:27:11      阅读:599      评论:0      收藏:0      [点我收藏+]

标签:des   c   style   class   blog   code   

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. 报表默认输出方式

    bubuko.com,布布扣

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

    bubuko.com,布布扣

Step3. 运行报表,查看layout

    bubuko.com,布布扣

Step4. 其layout显示

    bubuko.com,布布扣

Step5. 其layout的存放的位置

    bubuko.com,布布扣

Step6. 建立改路径

    bubuko.com,布布扣

Step7. 使用测试脚本

bubuko.com,布布扣
 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;
bubuko.com,布布扣

Step8. 收到email

    bubuko.com,布布扣

 

Thanks and Regards

 bubuko.com,布布扣

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

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

标签:des   c   style   class   blog   code   

原文地址:http://www.cnblogs.com/eastsea/p/3763532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!