在论坛中看到一个贴子
我误删了一个表,怎么样可以恢复这个表,没有备份的我的版本是9I的 请教!刚才我误删了一个表,这个表很重要里面有很多数据,怎么样可以恢复这个表,表没有备份,急。请帮帮忙! 在线等!
我咋一看觉得有可能恢复吗,因为没有备份,看到下面回答的也有很多种方法,有一个是说用数据闪回应该可以,查阅了一下,试着做了一下,结果是如果drop掉表了,应该是不可以的,但delete 了数据是可以的。
做法如下:
SQL> select count(*) from B_MACHINE; --先查询出当前表中的数据有多少行
COUNT(*)
----------
42
SQL> select dbms_flashback.get_system_change_number from dual; --取出充的SCN点值(system change number)
GET_SYSTEM_CHANGE_NUMBER
------------------------
26682786
SQL> delete from b_machine; --开始删除表中的数据
已删除42行。
SQL> commit; --提交数据
提交完成。
SQL> select count(*) from b_machine; --这时检查表中数据已经未空
COUNT(*)
----------
0
SQL> select count(*) from b_machine as of scn 26682786; --查询SCN为26682786时的表中数据为42行
COUNT(*)
----------
42
SQL> insert into b_machine select * from b_machine as of scn 26682786; --从SCN点恢复数据到表中
已创建42行。
SQL> commit;
提交完成。
SQL> select count(*) from b_machine; --已经成功
COUNT(*)
----------
42
对于drop掉的表,会出现没有此表的错误提示。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/67668/viewspace-231070/
,如需转载,请注明出处,否则将追究法律责任。