在我們實際工作中,誤刪除或者修改Oracle數據庫中的數據,怎么辦呢?這里給大家分享一種解決辦法。假如你誤操作的時間不超過30分鍾(數據庫默認的回滾保持段里的數據時間,可以在pl/sql執行窗口按ctrl+E查看你最近的操作),就是可以使用以下方法恢復數據。
方法/步驟
-
1.樣例表test_171205 數據如下圖:
-
2.delete test_171205 where test_id = '001'; --誤刪除了其中一條數據,之后數據如下圖
-
3.select sql_text,first_load_time,last_load_time from V$SQL where sql_text like '%delete test_171205%';--查看自己執行過的sql和最后執行時間,這里查到最后執行時間是2017-12-05 21:20:10;
-
4.create table test_171205_tmp as select * from test_171205 as of timestamp to_timestamp('2017-12-05 21:20:11','yyyy-mm-dd hh24:mi:ss');--創建一個臨時表,用來保存2017-12-05 21:20:10分之前的數據
-
5.drop table test_171205;--刪除原來的表
-
6.alter table test_171205_tmp rename to test_171205;--更改臨時表的表名