您的位置:首页 > 数据库 > Oracle

Oracle查找删除记录后表中某一时间点的数据

2015-10-16 16:08 411 查看
http://blog.chinaunix.net/uid-16861721-id-2857492.html

Oracle查找删除记录后表中某一时间点的数据

------------------------------------------------------------------------------------

删除数据前表中记录

1> select t.*, t.rowid from vt_temp_test;

1 1 2 3.00 4.00

2 5 6 7.00 8.00

3 9 10 11.00 12.00

4 13 14 15.00 16.00

记录原数据完整时间点

2> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

1 2009-01-08 09:23:53

删除表中记录

3> delete from vt_temp_test;

找回原数据完整时间点数据

4> select * from vt_temp_test as of timestamp to_timestamp('2009-01-08 09:23:53', 'yyyy-mm-dd hh24:mi:ss');

1 1 2 3.00 4.00

2 5 6 7.00 8.00

3 9 10 11.00 12.00

4 13 14 15.00 16.00

插入丢失数据到原表

5> insert into vt_temp_test select * from vt_temp_test as of timestamp to_timestamp('2009-01-08 09:23:53', 'yyyy-mm-dd hh24:mi:ss');

验证数据恢复情况

6> select * from vt_temp_test

1 1 2 3.00 4.00

2 5 6 7.00 8.00

3 9 10 11.00 12.00

4 13 14 15.00 16.00

---- 此时表明数据已完全恢复到原数据完整时间点的数据 ----

#### 注:当执行 truncate table vt_temp_test 时,就无法恢复数据,查找当时数据会报错:ORA-01466 unable to read table - table definition has changed。drop table vt_temp_test则更不可恢复 ####
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: