PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)
2014-06-01 Created By 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. 报表默认输出方式
Step2. 报表的最终的方式为PDF
Step3. 运行报表,查看layout
Step4. 其layout显示
Step5. 其layout的存放的位置
Step6. 建立改路径
Step7. 使用测试脚本
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;
Step8. 收到email
Thanks and Regards
ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
分类:
[1.1 数据]. PLSQL
标签:
PLSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?