如果没有保存点,如何在pl / sql中回滚到开头?

时间:2017-06-27 08:16:29

标签: oracle plsql transactions

我对数据库进行了一些更改,导致我的页面崩溃。我想撤消这些变化。但回滚只能在最后一次提交时工作,我需要回滚大约6次提交或说,到当天开始时我没有手动定义任何保存点。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

  

"我需要回滚大约6个提交或说,到当天开始,我没有手动定义任何保存点。"

你不能这样做。发出COMMIT会完成事务并使结果对其他会话可见。这意味着其他用户将根据您提交的更改开展活动。允许您在该点之后回滚这些更改会将可怕的损坏注入数据库。

发布SAVEPOINT并不会改变这种情况,因为保存点只是将单个事务分解为多个可逆块的一种方式。但是一旦提交发生,就会擦除保存点。

您唯一的选择是使用闪回技术。如果您的DBA已为数据库配置了足够的存储空间,您应该能够将数据库的状态恢复到特定的时间点。然后,您可以决定如何继续;你可以选择做什么取决于你想要扭转的变化的性质。无论如何,find out more