有没有办法做到这一点?我找到了补充,
DBMS_LOCK.sleep()
通过谷歌搜索到触发器代码的开头,但它阻止了插件本身的发生。我想插入数据但触发器应该在任意延迟后触发。感谢。
答案 0 :(得分:7)
如果我们知道为什么你想要这个延迟,以及触发器在延迟之后应该做什么会有所帮助。但是,一种可能性是使用触发器中的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分钟的行。