有一个程序在表格的中间插入操作。该表包含一个触发器,因此整个事务处于保持状态。无论如何都要在单独的会话中运行触发器,并且在插入操作过程运行之后无需等待触发器完成。
程序和触发器都是
PRAGMA AUTONOMOUS_TRANSACTION
答案 0 :(得分:2)
您可以尝试将触发器部分运行为dbms_job
...,如下所示:
CREATE OR REPLACE TRIGGER myrigger
AFTER INSERT
ON mytable
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
l_job number;
begin
dbms_job.submit( l_job, 'MYPACKAGE.MYFUNCTION(''' || :new.myField || ''');' );
END ;
/
答案 1 :(得分:0)
如果Trigger基于插入操作,它将保持当前会话,直到该触发操作完成。这是维护数据库端完整性所必需的。可以设计一个程序&如果要求已知,则以更好的方式触发。