自治事务是oracle中提供一种在大事务中,单独提交和完成小事务的解决方案.我们可以在一个大的事务中,建立一个小事务,当小事务完成提交后,只影响小事务中的相关sql语句,而大事务中的sql语句执行情况不受影响.

     1.在匿名块中定义自治事务:

        

insert into temp1 values('1');
declare pragma autonomous_transaction;
begin
insert into temp1 values('2');
commit;
end;
rollback;

           以上代码temp1中将增加一行2的值;

      2. 在过程中定义自治事务:

          

procedure test_autonomous_transaction is pragma autonomous_transaction;
begin
insert into temp1 values('3');
commit;
exception when others then
rollback;
end test_autonomous_transaction;