oracle commit之后的數據回滾


當你暈暈乎乎的執行了commit之后,突然間意思到自己點錯了,那說明你和我碰到了一樣的問題。

瞬間感覺大冷天頭頂冒汗,那就說明你的感覺對了。廢話少說,下面是我的辦法:

下面的例子都是以Test表為例。

select
t.*,t.rowid from Test t;
-----執行了一堆命令
commit;
意識到自己點錯了。

開始恢復了
select * from Test as of timestamp to_timestamp('2016-12-29 15:04:56','yyyy-mm-dd hh24:mi:ss');
上面的代碼就可以查看你要恢復的時間點的記錄,看看是不是你想要的記錄。

能看到,剩下的就簡單了,可以把現在表中的數據備份到一個臨時表,然后把記錄差插進去就行了

不要用truncate刪除,不然你就回不去了,到時候你就要哭了!!!!!!!
delete from Test;
insert into Test select * from Test as of timestamp to_timestamp('2016-12-29 15:24:27','yyyy-mm-dd hh24:mi:ss');
commit;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM