iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >oracle数据库自动发邮件怎么实现报警功能
  • 963
分享到

oracle数据库自动发邮件怎么实现报警功能

2024-04-02 19:04:59 963人浏览 安东尼
摘要

这篇文章主要介绍“oracle数据库自动发邮件怎么实现报警功能”,在日常操作中,相信很多人在oracle数据库自动发邮件怎么实现报警功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大

这篇文章主要介绍“oracle数据库自动发邮件怎么实现报警功能”,在日常操作中,相信很多人在oracle数据库自动发邮件怎么实现报警功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle数据库自动发邮件怎么实现报警功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

我们之前有个需求,需要每天检查oracle里的job是否执行成功,人工查比较麻烦,写了一个存储过程,定时发邮件。

一共涉及两个存储过程,第一个是设置发邮件给谁和发的内容。

CREATE OR REPLACE PROCEDURE CHECK_JOBS_GL
AS
  
 V_NUMBER VARCHAR2(10);
 
BEGIN
  -- 检查dba_jobs表查看是否有执行错误的job
 
    SELECT  COUNT(1) INTO V_NUMBER  FROM USER_JOBS WHERE SCHEMA_USER = 'Mxxxxx' AND failures <> '0';
    IF V_NUMBER = '0' THEN 
     send_mail_gl('guoliang@xxxx.cn','数据库定时任务执行成功','您好,数据库定时任务执行成功,请知悉');
     
    ELSE
     send_mail_gl('guoliang@xxxx.cn','请注意,数据库定时任务执行失败','您好,数据库定时任务执行失败,请排查');
     
    END IF;
DBMS_OUTPUT.put_line(V_NUMBER);
      
END;

第二个就是上面提到的send_mail_gl程序:

CREATE OR REPLACE PROCEDURE SEND_MAIL_GL(p_recipient VARCHAR2, -- 邮件接收人
                                         p_subject VARCHAR2, -- 邮件标题
                                         p_message VARCHAR2 -- 邮件正文
)
IS
  --下面四个变量请根据实际邮件服务器进行赋值
  v_mailhost VARCHAR2(30) := 'smtp.exmail.qq.com'; --SMTP服务器地址
  v_user VARCHAR2(30) := 'devops@xxx.cn'; --登录SMTP服务器的用户名
  v_pass VARCHAR2(20) := 'xxxx'; --登录SMTP服务器的密码
  v_sender VARCHAR2(50) := 'devops@xxx.cn'; --发送者邮箱,一般与 ps_user 对应
  v_conn UTL_SMTP.connection; --到邮件服务器的连接
  v_msg VARCHAR2(4000); --邮件内容
BEGIN
  v_conn := UTL_SMTP.open_connection(v_mailhost, 25);
  UTL_SMTP.ehlo(v_conn, v_mailhost); --是用 ehlo() 而不是 helo() 函数
  --否则会报:ORA-29279: SMTP 永久性错误
  UTL_SMTP.command(v_conn, 'AUTH LOGIN'); -- smtp服务器登录校验
  UTL_SMTP.command(v_conn,
                   UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_user))));
  UTL_SMTP.command(v_conn,
                   UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_pass))));
  UTL_SMTP.mail(v_conn, '<' || v_sender || '>'); --设置发件人
  UTL_SMTP.rcpt(v_conn, '<' || p_recipient || '>'); --设置收件人
  -- 创建要发送的邮件内容 注意报头信息和邮件正文之间要空一行
  v_msg := 'Date:' || TO_CHAR(SYSDATE, 'yyyy mm dd hh34:mi:ss') ||
           UTL_tcp.CRLF || 'From: ' || v_sender || '' || UTL_TCP.CRLF ||
           'To: ' || p_recipient || '' || UTL_TCP.CRLF || 'Subject: ' ||
           p_subject || UTL_TCP.CRLF || UTL_TCP.CRLF -- 这前面是报头信息
           || p_message; -- 这个是邮件正文
  UTL_SMTP.open_data(v_conn); --打开流
  UTL_SMTP.write_raw_data(v_conn, UTL_RAW.cast_to_raw(v_msg)); --这样写标题和内容都能用中文
  UTL_SMTP.close_data(v_conn); --关闭流
  UTL_SMTP.quit(v_conn); --关闭连接
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.put_line(DBMS_UTILITY.fORMat_error_stack);
    DBMS_OUTPUT.put_line(DBMS_UTILITY.format_call_stack);
END SEND_MAIL_GL;

到此,关于“oracle数据库自动发邮件怎么实现报警功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: oracle数据库自动发邮件怎么实现报警功能

本文链接: https://www.lsjlt.com/news/59821.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle数据库自动发邮件怎么实现报警功能
    这篇文章主要介绍“oracle数据库自动发邮件怎么实现报警功能”,在日常操作中,相信很多人在oracle数据库自动发邮件怎么实现报警功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-18
  • 如何通过Oracle实现自动发邮件功能
    在内网项目、外网项目中多有 需要自动监控发邮件提醒的功能,因为邮件功能最便捷、便宜、不用开接口,不用接口费用。现 提供 我在一个内网项目中的使用案例: 案例背景: 在有限的资源下,能够自动给下级单位发布 数据考核评分(自动评分)和...
    99+
    2019-09-17
    如何通过Oracle实现自动发邮件功能
  • python怎么实现自动化办公邮件合并功能
    本篇内容主要讲解“python怎么实现自动化办公邮件合并功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么实现自动化办公邮件合并功能”吧!经常使用word办公的小伙伴们经常会遇到...
    99+
    2023-06-20
  • 怎么使用Java自带的mail API实现邮件发送功能
    本篇内容主要讲解“怎么使用Java自带的mail API实现邮件发送功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Java自带的mail API实现邮件发送功能”...
    99+
    2023-07-05
  • Python/MySQL怎么实现Excel文件自动处理数据功能
    今天小编给大家分享一下Python/MySQL怎么实现Excel文件自动处理数据功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-05
  • AST怎么实现函数错误的自动上报功能
    本篇内容主要讲解“AST怎么实现函数错误的自动上报功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“AST怎么实现函数错误的自动上报功能”吧! 前言之...
    99+
    2022-10-19
  • 怎么在UNIX下实现Oracle数据库自动备份
    本篇内容介绍了“怎么在UNIX下实现Oracle数据库自动备份”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据备份几乎是每个系统管理员天天...
    99+
    2023-06-17
  • MySQL数据库中怎么实现序列自增功能
    MySQL数据库中怎么实现序列自增功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、创建sequence表CREATE TABL...
    99+
    2022-10-18
  • Qt怎么实现自动清理早期数据功能
    今天小编给大家分享一下Qt怎么实现自动清理早期数据功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。功能特点1 软件模块设备...
    99+
    2023-07-02
  • Oracle数据库中怎么实现一个自动备份脚本
    这篇文章给大家介绍Oracle数据库中怎么实现一个自动备份脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、备份脚本1、初始化变量,记录开始日志#变量  sysname=...
    99+
    2022-10-18
  • 怎么用Java程序调用expdp数据泵实现自动逻辑备份Oracle数据库
    本篇内容主要讲解“怎么用Java程序调用expdp数据泵实现自动逻辑备份Oracle数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java程序调用e...
    99+
    2022-10-18
  • oracle、mysql数据库停止与启动的批处理文件怎么实现
    小编给大家分享一下oracle、mysql数据库停止与启动的批处理文件怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!关机,取消关机::关机echo 30秒之后关机%systemroot%\system32...
    99+
    2023-06-08
  • android轻量级无侵入式管理数据库自动升级组件怎么实现
    这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“android...
    99+
    2023-07-05
  • oracle怎么实现动态查询前一天早八点到当天早八点的数据功能
    这篇文章给大家分享的是有关oracle怎么实现动态查询前一天早八点到当天早八点的数据功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需要查询前一天早八点到当天早八点的数据这里是...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作