环境:Oracle 12c
我是 Oracle 高级队列 (AQ) 的新手,看起来它应该是最好的方法,而不是轮询。
基于此,我想利用 AQ 基于以下触发器来使用:
CREATE OR REPLACE TRIGGER MY_TRG
AFTER UPDATE OF STATUS ON "MY_TABLE"
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
v_status INTEGER;
begin
if :OLD.status = 'ERROR' and (:NEW.status = 'OK' or :NEW.status = 'ERROR') then
--
-- do some Advanced Queue processing here ?
--
end if;
end;
因此,不是在更新 STATUS 列时进行轮询,是否可以使用 AQ 提供某种类型的 CALLBACK 功能?
我基本上需要一种知道何时更新 STATUS 列的方法,以便在发生这种情况时执行一些其他操作。