2011-10-13 107 views
0

我以某种方式认为回滚意味着撤消最后一个动作。这是我做的:我可以在sqlplus中撤销回滚吗?

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 

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

回答

4

你看是不完整的......那UPDATE你一定是做别的东西像一个INSERT前...什么

没有回退的回退,如果那是你正在问...唯一的办法就是重新执行在回滚之前的最后一次提交和该回滚之间执行的所有语句(以相同顺序!)...

另一种选择是如果您的Oracle数据库具有活动的闪回区域,则存在 - 那么您可以将整个数据库“倒带”到发布回滚之前的时间点...

+0

是的,在更新之前,我做了很多插入操作等。我手动完成了所有操作。嗯,所以看起来我今天学到了很好的一课。是的,我从来没有提交过一个提交。我确定下次会。非常感谢你Yahia! – Coffee

+0

请参阅:http://stackoverflow.com/questions/15298516/how-to-restore-the-data-in-a-oracle-table - >要将数据回写到特定表格中 – Raja