比如:
create or replace trigger tr_aud_t2 after update on t2
declare
PRAGMA autonomous_transaction; --定义成自制事务后,变成独立事务,就可以commit了
begin
insert into aud_tmp values(sysdate,'update',sys_context('USERENV','CURRENT_USER'));
commit; --此处就是独立事务了,想记录就记录不管外头update成功与否
end;
SQL> /
SQL> select ename,sal from t2 where empno=7788;
ENAME SAL
---------- ----------
SCOTT 102
SQL> select * from aud_tmp; --当成一个独立的事务插入的,所以可以查出来
EXEC_TIME EXEC_TYPE EXEC_USER
------------------- ---------- --------------------
2011-03-11 05:39:32 update SCOTT