oracle告警邮件,利用Oracle发送邮件功能简单监控数据库运行状态

本文介绍了一种简单的方法,通过Oracle的自动发送邮件功能结合OEM来监控数据库。提供了一个存储过程示例,支持多收件人、中文、抄送、大附件等功能,并详细说明了各个参数的用途。注意附件编码和格式的选择,以及对SMTP服务器的配置要求。
摘要由CSDN通过智能技术生成

对于Oracle的监控,方法有很多,我这里只是简单的利用oracle自动发送邮件的功能辅助OEM对数据库进行一些监控,具体细节如下:

对于Oracle的监控,方法有很多,我这里只是简单的利用oracle自动发送邮件的功能辅助OEM对数据库进行一些监控,具体细节如下:

发送邮件的存储过程是从网上摘抄过来的,做了小小的改动:

CREATE OR REPLACE PROCEDURE sp_send_email(P_TXT VARCHAR2,

P_SUB VARCHAR2,

P_SENDOR VARCHAR2,

P_RECEIVER VARCHAR2,

P_SERVER VARCHAR2,

P_PORT NUMBER DEFAULT 25,

P_NEED_SMTP INT DEFAULT 1,

P_FILENAME VARCHAR2 DEFAULT NULL,

P_ENCODE VARCHAR2 DEFAULT 'bit 7')

AUTHID CURRENT_USER IS

/*

作用:用oracle发送邮件

主要功能:1、支持多收件人。

2、支持中文

3、支持抄送人

4、支持大于32K的附件

5、支持多行正文

6、支持多附件

7、支持文本附件和二进制附件

8、支持HTML格式

8、支持

作者:suk

参数说明:

p_txt :邮件正文

p_sub: 邮件标题

p_SendorAddress : 发送人邮件地址

p_ReceiverAddress : 接收地址,可以同时发送到多个地址上,地址之间用","或者";"隔开

p_EmailServer : 邮件服务器地址,可以是域名或者IP

p_Port :邮件服务器端口

p_need_smtp:是否需要smtp认证,0表示不需要,1表示需要

p_user:smtp验证需要的用户名

p_pass:smtp验证需要的密码

p_filename:附件名称,必须包含完整的路径,如"d:\temp\a.txt"。

可以有多个附件,附件名称只见用逗号或者分号分隔

p_encode:附件编码转换格式,其中 p_encode='bit 7' 表示文本类型附件

p_encode='base64' 表示二进制类型附件

注意:

1、对于文本类型的附件,不能用base64的方式发送,否则出错

2、对于多个附件只能用同一种格式发送

*/

L_CRLF VARCHAR2(2) := UTL_TCP.CRLF;

L_SENDORADDRESS VARCHAR2(4000);

L_SPLITE VARCHAR2(10) := '++';

BOUNDARY CONSTANT VARCHAR2(256) := '-----BYSUK';

FIRST_BOUNDARY CONSTANT VARCHAR2(256) := '--' || BOUNDARY || L_CRLF;

LAST_BOUNDARY CONSTANT VARCHAR2(256) := '--' || BOUNDARY || '--' ||

L_CRLF;

MULTIPART_MIME_TYPE CONSTANT VARCHAR2(256) := 'multipart/mixed; boundary="' ||

BOUNDARY || '"';

/* 以下部分是发送大二进制附件时用到的变量 */

L_FIL BFILE;

L_FILE_LEN NUMBER;

L_MODULO NUMBER;

L_PIECES NUMBER;

L_FILE_HANDLE UTL_FILE.FILE_TYPE;

L_AMT BINARY_INTEGER := 672 * 3; /* ensures proper format; 2016 */

L_FILEPOS PLS_INTEGER := 1; /* pointer for the file */

L_CHUNKS NUMBER;

L_BUF RAW(2100);

L_DATA RAW(2100);

L_MAX_LINE_WIDTH NUMBER := 54;

L_DIRECTORY_BASE_NAME VARCHAR2(100) := 'DIR_FOR_SEND_MAIL';

L_LINE VARCHAR2(1000);

L_MESG VARCHAR2(32767);

/* 以上部分是发送大二进制附件时用到的变量 */

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值