梁风有信

梁风有信
  首页  :: 联系 :: 管理

Oracle自治事务

Posted on 2013-07-02 11:53  梁风有信  阅读(247)  评论(0编辑  收藏  举报

 定        义:


 Autonomous transactions are independent transactions that can be called from within another transaction.
 à被一个事务调用的事务,但它独立于它的父事务提交或回滚。


 注意事项:


必须在匿名块的最高层或者存储过程、函数、数据包或触发的定义部分中,使用PL/SQL中的PRAGMA AUTONOMOUS_TRANSACTION语句
必须Commit或Rollback自治事务,否则会抛:ORA-06519: active autonomous transaction detected and rolled back。
如果自治事务要访问的资源已经被主事务持有,我们的程序就发生了死锁


 应用场景:


日志机制
在数据库触发器中执行提交和回滚
可重用的应用组件
避免查询时出现突变表触发器错误
在修改这个表的SQL中调用用户自定义函数
重试计数器