在Oracle中,Oracle使用哪一个包能够生成并传递数据库告警信息?程序员
DBMS_ALERT包用于生成并传递数据库告警信息。若想使用DBMS_ALERT包,则必须以SYS登录,为普通用户授予执行权限。DBMS_ALERT能让数据库触发器在特定的数据库值发生变化时向应用程序发送报警。报警是基于事务的而且是异步的(也就是它们的操做与定时机制无关)。面试
示例以下所示:sql
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执行:app
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/
四、查询会话1,输入以下内容:异步
1hello, this is sending process!
本文选自《Oracle程序员面试笔试宝典》,做者:李华荣。
ide
详细内容能够添加麦老师微信或QQ私聊。学习
● 本文做者:小麦苗,只专一于数据库的技术,更注重技术的运用
● 做者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于做者的学习笔记,部分整理自网络,如有侵权或不当之处还请谅解
● 版权全部,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答如有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
本文分享自微信公众号 - DB宝(lhrdba)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。