Oracle 一些触发器自治事务相关错误

Oracle 一些触发器自治事务相关错误

table XXX is mutating,trigger/function may not see it

在触发器中调用的函数或者语句有查询当前表的操作,比如触发器中调用的函数中有查询自身的数据的操作,使用自治事务即可解决这个问题

active autonomous transaction detected and rolled back

使用自治事务没有显式提交或回滚,应该在函数最后加个显示提交的commit或者rollback

例如:

create or replace procedure XXX(X Integer) as
  pragma autonomous_transaction;
begin

  if X > 0 then
  
    insert into XttXttX (a) (select X from dual);
    commit;
  end if;

end;
posted @ 2023-02-16 15:14  DbWong_0918  阅读(174)  评论(0编辑  收藏  举报