日期:2014-05-17  浏览次数:21073 次

问一个关于Oracle的嵌套事务的问题
我现在是在修改前人的程序,大致就是一个主的sp下面调用了很多小sp(真的很多),可是所有的小的sp里面最后都有commit结尾
这样造成我的主sp里的rollback其实没有意义,只能回滚到最近成功的那个小sp,而不能回滚到主sp得最前面。

不知道面对这种场合能改嘛?因为小sp数量真的很多,所以一个一个改不大现实。想问问大家。

------解决方案--------------------
用oracle的闪回功能

select DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER as RS from dual
取得你需要的scn号。。。

你要回滚的时候
使用
flashback table xxx to scn 1234
刚才的scn号

哈哈。可以否?