Oracle自治事务

在官方文档中,是这样的定义的“Autonomous transactions are independent transactions that can be called from within another transaction.”就是说它被一个事务调用的事务,但它独立于它的父事务提交或回滚。

自治事务的应用场景:

a   匿名块
 
b   本地、对立或打包的函数或过程
 
c   对象类型的方法
 
d   触发器

例如在存储过程中,使用自治事务,事务的提交或者回滚不会对父事务造成影响,同样的父事务的操作也不会影响到自治事务。

自治事务的使用:pragma autonomous_transaction,下例是创建自治事务的存储过程:

create or replace procedure log_err(errinfo varchar2)  
as  
   pragma autonomous_transaction;  
begin  
   insert into test1_log values(systimestamp, errinfo);  
commit;  
end;

自治事务的应用:记录错误日志或者消息(某一个记录出错可能会需要事务回滚,但是要插入错误日志,使用自治事务,操作回滚但是错误日志正常写到数据库)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值