首先是关于新建一个会话 对scott用户赋予权限
grant execute on dbms_alert to scott;
在scott 用户下注册一个警报
exec dbms_alert.register('baojing');
第二步
var a varchar2(200);
var b number;
exec dbms_alert.waitone('baojing',:a,:b);
这是后会无限的等待知道另一个会话执行dbms_alert.signal();
打开另一个会话
scott下建一个对emp的触发器
create trigger test
after insert or delete or update on emp
begin
dbms_alert.signal('baojing','table emp has changed');
end test;
例如在emp表中插入一行数据这时候观察第一个会话
insert into emp(enpno,ename) values(0001,'xiaowang');
commit;
会发现第一个会话立刻就不等待了直接执行完成
这时候在 print :a
则显示 table emp has changed
grant execute on dbms_alert to scott;
在scott 用户下注册一个警报
exec dbms_alert.register('baojing');
第二步
var a varchar2(200);
var b number;
exec dbms_alert.waitone('baojing',:a,:b);
这是后会无限的等待知道另一个会话执行dbms_alert.signal();
打开另一个会话
scott下建一个对emp的触发器
create trigger test
after insert or delete or update on emp
begin
dbms_alert.signal('baojing','table emp has changed');
end test;
例如在emp表中插入一行数据这时候观察第一个会话
insert into emp(enpno,ename) values(0001,'xiaowang');
commit;
会发现第一个会话立刻就不等待了直接执行完成
这时候在 print :a
则显示 table emp has changed
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30163683/viewspace-1603947/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30163683/viewspace-1603947/