日期:2014-05-17  浏览次数:20819 次

调用dbms_alert的简单问题
我想在一张表的记录发生变化时,通过在出发器里发送一个消息,用dbms_alert.signal  
在收到这个消息时,调用我的存储过程进行一些数据的运算,现在的问题时,我知道在这个表的触发器里我可以写dbms_alert.signal   ;但接收消息的dbms_alert.waitone   写在什么地方呢?
有用过的没有

------解决方案--------------------
发送进程:

declare
v_alertName varchar2(30):= 'alert1 ';
begin
dbms_alert.signal(v_alertName, ' hello,this is sending process! ');
commit;
end;
/

  接受进程:

declare
v_alertName varchar2(30):= 'alert1 ';
v_status integer;
v_msg varchar2(20);
begin
dbms_alert.register(v_alertName);
dbms_alert.waitone(v_alertName,v_msg,v_status);
if v_status !=0 then
dbms_output.put_line( 'error ');
end if;
dbms_output.put_line(v_msg);
end;
/