【发布时间】:2020-04-20 06:23:23
【问题描述】:
环境:Oracle 12c R2
试图了解设置 Oracle DBMS_SCHEDULER 作业的最佳方法是什么,该作业将用于监视 DBMS_ALERT 触发器,该触发器检查表中特定列值何时发生变化。
问题是,此表列值更改有时会频繁发生,有时可能一天只发生两次,但我需要通过 DBMS_ALERT 监视此列更改。
我的触发器如下,我有一个名为check_signal 的过程,用于检查我希望在 DBMS_SCHEDULER 作业中使用的信号。
我要实现的目标是我将面临需要运行三份工作的情况:
Job1
Job2
Job3
问题是,从Job1 返回的有效负载是必需的,并作为参数传递给Job2,同样,从 Job2 返回的有效负载也是必需的,并作为参数传递给Job3。
我试图通过使用 DBMS_ALERTS 来实现这种等待/警报。
create or replace trigger my_tab_upd after update of status on my_tab for each row
begin
dbms_alert.signal('mystatusalert', 'changed from '||:old.status||' to '||:new.status||'.');
end;
/
这将通过一个由多个用户使用的基于网络的应用程序来使用。
只是不确定如何设置此计划作业,该作业将持续检查警报,然后在网络应用程序中使用。
如果有比 DBMS_ALERT 更好的方法,请告诉我。
【问题讨论】:
标签: oracle plsql notifications oracle12c