zoukankan      html  css  js  c++  java
  • 四、dbms_alert(用于生成并传递数据库预警信息)

    1、概述

    作用:用于生成并传递数据库预警信息.使用包DBMS_ALERT,则必须以SYS登陆,为该用户授予执行权限.
    sql>conn sys/oracle as sysdba
    sql>grant execute on dbms_alert to scott;

    2、包的组成

    1)、register
    说明:用于注册预警事件
    语法:dbms_alter.register(name in varchar2);
    其中name指定预警事件名称,其值不能超过30字节。
    例子:exec dbms_alter.register('alter1');

    2)、remove
    说明:用于删除会话不需要的预警事件.
    语法:dbms_alert.remove(name in varchar2);
    例子:exec dbms_alert.remove('alert1');

    3)、removeall
    说明:用于删除当前会话所有已注册的预警事件
    语法:dbms_alter.removeall

    4)、set_defaults
    说明:用于设置检测预警事件的时间间隔,默认时间间隔为5秒
    语法:dbms_alert.set_defaults(sensitivity in number);
    例子:dbms_alert.set_defaults(20)

    5)、signal
    说明:用于指定预警事件所对应的预警消息。只有在提交事务时才会发出预警信号,而当回退事务时不会发出预警信号。
    语法:dbms_alert.signal(name in varchar2,message in varchar2);
    其中message指定预警事件的消息,长度不超过1800字节。
    例子:exec dbms_alert.signal('alert1','hello');

    6)、waitany
    说明:用于等待当前会话的任何预警事件,并且在预警事件发生时输出相应信息.在执行该过程之前,会隐含地发出COMMIT.
    语法:
    dbms_alter.waitany(name out varchar2,message out varchar2,status out integer,timeout in number default maxwait);
    其中status用于返回状态值,返回0表示发生了预警事件,返回1表示超时;timeout用于设置预警事件的超时时间.

    7)、waitone
    说明:用于等待当前会话的特定预警事件,并且在发生预警事件时输出预警消息.在执行该过程之前,会隐含地发出COMMIT.
    dbms_alter.waitone(name out varchar2,message out varchar2,status out integer,timeout in number default maxwait);

    3、应用实例

    修改员工工资时发出预警
    create or replace trigger tr_upd_sal
    after update of sal on emp
    begin
    dbms_alert.signal('sal_upd_alert','修改了雇员工资');
    end;

    create or replace procedure wait_event(name varchar2) is
    message varchar2(200);
    status int;
    begin
    dbms_alert.register(name);
    dbms_alert.waitone(name,message,status);
    if status=0 then
    dbms_output.put_line(message);
    end if;
    dbms_alert.remove(name);
    end wait_event;

    set serveroutput on
    begin
    for i in 1..5 loop
    wait_event('sal_upd_alert');
    end loop;
    end;

  • 相关阅读:
    d3 中exit() remove()正确工作的方式
    理解callback function in javascript
    关于AJAX中函数的执行顺序
    闭包允许内层函数引用父函数中的变量,但是该变量是最终值
    操作系统 庞丽萍 习题九
    关于vector的内存释放问题
    gcc命令中参数c和o混合使用的详解[转载]
    模板函数(template function)出现编译链接错误(link error)之解析
    [转载]config文件的一个很好的实现
    new 等于 malloc加构造函数
  • 原文地址:https://www.cnblogs.com/champaign/p/9468461.html
Copyright © 2011-2022 走看看