PLSQL_自治事务和嵌套的理解和用法(案例)
时间:2022-03-10 17:26
2014-06-01 BaoXinjian In Capgemini
一、摘要
嵌套事物:指在一个Parent事务中嵌套的一个或多个Sub Transaction.并且主事务与其相互影响,这种事务就称为嵌套事务。以Commit作为事务的结束
自治事物:指在function,procedure等subprograms中对事务进行自治管理,当在别的pl/sql block里去调用这些subprograms的时候这些subprograms并不随着父pl/sql block的失败而回滚,而是自己管自己commit。以Commit作为事务的结束。自治事务常用于写入LOG或TRAC信息便于查找错误。
个人感觉,一般嵌套事物因为采用savepoint&rollback这种方式进行回滚,会破坏程式的可读性及模块化,特别有多个savepoint&rollback在程式中,可能连自己写的人会混淆,更何况项目运维过程中的维护人员,所以一般在写程式标准中,会禁止使用嵌套事物
而自治事物可将程式的模块化,一般来说是推荐的写法,将主事物和子事物进行隔离,所以后面也会对自治事物做详细的解读
二、嵌套事物 SavePoint
1. 基本作用:建立回滚节点,之后如回滚直接回滚此节点,此节点之前仍会Commit
2. 基本语法
SAVE_POINT my_savepoint;
...
...
ROLLBACK to my_savepoint;
3. 因是开发过程中不推荐的写法,所以案列就略去了;)
三、自治事物 autonomous_transation
1. 基本作用:
申明proc2为自治事务
PLSQL_自治事务和嵌套的理解和用法(案例),布布扣,bubuko.com