在Oracle中,Oracle使用哪个包可以生成并传递数据库告警信息?
♣ 答案部分
DBMS_ALERT包用于生成并传递数据库告警信息。若想使用DBMS_ALERT包,则必须以SYS登陆,为普通用户授予执行权限。DBMS_ALERT能让数据库触发器在特定的数据库值发生变化时向应用程序发送报警。报警是基于事务的并且是异步的(也就是它们的操作与定时机制无关)。
示例如下所示:
1、首先应先授予用户使用DBMS_ALERT的权限。登录到SYS用户下,执行如下语句:
1GRANT EXECUTE ON DBMS_ALERT TO LHR;
2、会话1执行:
1DECLARE
2 V_ALERTNAME VARCHAR2(30) := 'alert_lhr';
3 V_STATUS NUMBER;
4 V_MSG VARCHAR2(100);
5BEGIN
6 DBMS_ALERT.REGISTER(V_ALERTNAME); --注册要接收信息的警报器
7 DBMS_ALERT.WAITONE(V_ALERTNAME, V_MSG, V_STATUS);
8 IF V_STATUS != 0 THEN
9 DBMS_OUTPUT.PUT_LINE('error');
10 ELSE
11 DBMS_OUTPUT.PUT_LINE(V_MSG);
12 END IF;
13END;
14/
该会话处于等待状态。
3、会话2执行:
1DECLARE
2 V_ALERTNAME VARCHAR2(30) := 'alert_lhr';
3BEGIN
4 DBMS_ALERT.SIGNAL(V_ALERTNAME, 'hello, this is sending process!');
5 COMMIT; --必须COMMIT,警报才会真正被发出
6END;
7/
4、查询会话1,输入如下内容:
1hello, this is sending process!
本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
本文分享自微信公众号 - DB宝(lhrdba)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。