有办法吗?我发现添加,
DBMS_LOCK.sleep()
通过谷歌搜索到触发代码的开头,但它阻止了插入本身的发生。我想插入数据,但触发器应该只在任意延迟后触发。谢谢。
最佳答案
如果我们知道为什么您需要此延迟,以及触发器在延迟后应该执行什么操作,将会有所帮助。但是,一种可能性是使用 DBMS_JOB在触发器中打包以创建一个在插入后不久运行的作业。例如:
create trigger trg
after insert on tab
for each row
declare
jl_ob number;
begin
dbms_job.submit
( job => l_job
, what => 'myproc(:new.id);'
, next_date => sysdate+1/24/60 -- One minute later
);
end;
或者,触发器可以将一行插入到一个特殊的表中,以及一个按计划运行的 DBMS_JOB,例如每 10 分钟可以处理表中超过 X 分钟的行。
关于oracle - 在插入 oracle 之后延迟触发器调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315927/