PRAGMA AUTONOMOUS_TRANSACTION
当前的存储过程作为已有事务的子事务运行,子事务的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
本文详细介绍了如何使用 PRAGMA AUTONOMOUS_TRANSACTION 来创建自治事务的存储过程,这种存储过程可以在已有事务中作为子事务独立运行,其 commit 或 rollback 不会影响父事务的状态。文章通过示例展示了在存储过程中如何实现这一特性。
2715

被折叠的 条评论
为什么被折叠?



