我可以在sqlplus中撤消回滚吗?

时间:2011-10-13 01:16:14

标签: sql oracle sqlplus rollback

我不知何故认为回滚意味着撤消上一个动作。这就是我所做的:

SQL> update owns
  2  set DRIVER_ID=99999999
  3  ^[[A^Z;

4 rows updated.

SQL> select * from owns;

DRIVER_ID            LICENSE
-------------------- ----------
99999999             ABC222
99999999             MSA369
99999999             MZZ2828
99999999             ZGA123

SQL> rollback
  2  ;

Rollback complete.

SQL> select * from owns;

no rows selected

一切都永远消失了吗?我的所有数据呢?感谢您的任何建议和帮助

1 个答案:

答案 0 :(得分:4)

你所展示的内容并不完整......在UPDATE之前你必须做一些像INSERT ......

的其他事情

如果这就是你要求的回滚没有回滚...你将这个“撤消”的唯一方法是重新执行在回滚和回滚之前的最后一次提交之间执行的所有语句(在同样的订单!)......

如果您的Oracle数据库具有活动的闪回区域,则会存在另一个选项 - 然后您可以将整个数据库“快退”到发布回滚之前的时间点...