oracle - 在插入 oracle 之后延迟触发器调用

标签 oracle plsql triggers

有办法吗?我发现添加,

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/

相关文章:

postgresql 过程/触发器

oracle - 从 PL/SQL 函数返回多个值

oracle - ORA-01000 : maximum open cursors exceeded

oracle - 创建自定义的多参数 Oracle 分析函数

oracle - 如何为 oracle 选择查询计时

oracle - 如何在 PL/SQL 中将天数(第 331 天)转换为 yyyymmdd?

sql - PL/SQL触发触发问题

java - 使用 Quartz 每 30 天的月度作业

java.sql.SQLException : Missing IN or OUT parameter at index, 即使我提供了正确数量的参数

oracle - PLSQL过程在运行时获取用户输入