当前的存储过程作为已有事务的子事务运行,子事务的commit,rollback操作不影响父事务的状态
可以用于
(1)匿名块
(2)触发器
(3)存储过程
如下:--------------------------------------------------------------------
procedure addRowAutonomous
(
pID in TLOG.id%type,
pLDate in TLOG.ldate%type,
pLHSECS in TLOG.lhsecs%type,
pLLEVEL in TLOG.llevel%type,
pLSECTION in TLOG.lsection%type,
pLUSER in TLOG.luser%type,
pLTEXTE in TLOG.ltexte%type
)
is
PRAGMA AUTONOMOUS_TRANSACTION;
begin
addRow
(
pID => pID,
pLDate => pLDate,
pLHSECS => pLHSECS,
pLLEVEL => pLLEVEL,
pLSECTION => pLSECTION,
pLUSER => pLUSER,
pLTEXTE => pLTEXTE
);
commit;
exception when others then
PLOG.ERROR;
rollback;
raise;
end;
在程序中,要注意一定要把事务控制好,不要有遗漏的地方,否则会有ORA-06519