2011-10-13 111 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