VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

DBMS_ALERT

  • 支持数据库事件(警报)的异步通知
函数名 参数类型 结果类型 描述
register name text void 用于注册预警事件
remove name text void 用于删除会话不需要的预警事件.
removeall null void 用于删除当前会话所有已注册的预警事件
set_defaults sensitivity double precision void 用于设置检测预警事件的时间间隔,默认时间间隔为5秒
signal _event text, _message text void 表示警报。信号调用的效果仅在其所在的事务提交时发生。如果事务回滚,则信号无效。
waitany OUT name text, OUT message text, OUT status integer, timeout double precision record 用于等待当前会话的任何预警事件,并且在预警事件发生时输出相应信息。
waitone name text, OUT message text, OUT status integer, timeout double precision record 用于等待当前会话的特定预警事件,并且在发生预警事件时输出预警消息。

会话1:接受进程(客户端接收)

do language plpgsql $$   
declare  
V_ALERTNAME text := 'alert1';
V_STATUS    integer;
V_MSG       text;
begin  
   DBMS_ALERT.REGISTER(V_ALERTNAME);  --注册要接收信息的警报器 
   DBMS_ALERT.WAITONE('alert1',100);
  IF V_STATUS != 0 THEN
     RAISE NOTICE 'error';
  ELSE
    RAISE NOTICE '%',V_MSG;
  END IF;
end;  
$$;  

会话2:发送进程(服务器端发出)

do language plpgsql $$   
declare 
V_ALERTNAME VARCHAR2(30) := 'alert1';
BEGIN
DBMS_ALERT.SIGNAL('alert1', 'hello, this   is   sending   process!');
end;  
$$;