oracle存储过程实现发送邮件-共享_第1页
oracle存储过程实现发送邮件-共享_第2页
oracle存储过程实现发送邮件-共享_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle存储过程实现定时发送邮件(内容包括html表格在6月佛山提了需求,是要求定时给佛山考勤设备接口人发送邮件和提醒短信,邮件内容主要是以表格(html的形式把佛山地区的考勤设备的连接情况,及时的反 应给移动接口人。在开发中碰到了一下几点我认为比较有代表性的问题跟大家分享下:1,最首先想到的问题是怎么在邮件里以表格的形式发送准确的数据。2.实现了发送邮件的功能,但是一般邮件的内容都是比较小的,而这次的需求因 为邮件内容 包括佛山整个地市的考勤机的信息(这是最大值,因此,不能用varchar2 类型变量来存储内 容,而要改用超大的clob类型。在Oracle中,LOB (Large Obj

2、ect,大型对象类型的字段现在用得越来越多了。因 为这种类型的字段,容量大(最多能容纳4GB的数据,且一个表中可以有多个这种 类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等。LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object,适用于存贮非文本的字节流数据(如程序、图象、影音等。而CLOB,即字 符型大型对象(Character Large Object则与字符集相关,适于存贮文本型的数据(如 历史档案、大部头著作等。在使用Clob变量的时候,你可以先定义一个varchar2类型的变量,然后调用方法DEMS LCB.WRHTE

3、 (l_body_htrtil, LENGTH (kq_me33age) , 1. kq_messge);第一个参数l_body_html是要操作的大型对象定位器,第二个参数kq_message 是要写到大型对象中去的字节数量(varchar2类型的,第三个参数是指定将数据写 入到大型对象什么位置的偏移地址,第四个参数是写入到大型对象的数据缓冲区。在定义clob的时候一定要注意:l_body_html CLOB := EMPTY_CLOB;而最容 易 让人忘 记的就 是他的 初始化,DBMS_LOB.createtemporary (l_body_html, FALSE, 10;(没有初始化一

4、定有报错,而且很难找,切记!。-接着写传参数的.发送邮件方法定义 CREATE OR REPLACE PROCEDURE GDXXT. send_mail(p_recipient VARCHAR2,-邮件接收人 p_subject VARCHAR2,-邮件标题 v_body_html CLOB -邮件内容在把clob参数传过来的时候,我们不能直接用这个传过来的 v_body_html,而是 要重新定义一个clob类型的l_body_html变量,然后把传过来的数据复制到新定义 的clob变量这时候就要用到一个方法,DBMS_LOB.COPY(l_body_html,-目标10bv_body_html,-源 lobDBMS_LOB.getlength(v_body_html,-拷贝的数据量DBMS_LOB.getlength(l_body_html,-1其中参数说明如下:l_body_html是被拷贝的目标10b定位器;v_body_html是被拷贝的源lob定位器;DBMS_LOB.getlength(v_body_html是指定了要拷贝的10b中的数据量;DBMS_LOB.getlength(l_body_html

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论