oracle 自治事务可以使事务相对于父事务独立。利用自治事务,可以挂起当前执行的事务,开始一个新事务,完成一些动作,然后提交或回滚,但是这些都不影响当前所执行事务的状态。自治事务提供了一种用pl/sql 控制事务的新方法,可以用于:
-
顶层匿名块
-
子过程,独立的过程
-
对象类型的方法
-
触发器
我们来学习一下自治事务的使用方法,实例如下所示,先创建一个表,分别用自治事务和普通事务给表中插入数据:
SQL> create table t (msg varchar2(25));
表已创建。
下面创建两个过程,分别是基于自治事务和普通事务。
自治事务
CREATE OR REPLACE PROCEDURE antonomous_insert
AS
PRAGMA AUTONOMOUS_TRANSACTION; --这个告诉数据库此外自治事务
BEGIN
INSERT INTO t VALUES('Autonomous Insert');