有的时候误删了表的数据或者误删了表,oracle10g有很简单的办法恢复!和大家分享一下!
误删数据后的还原:
select timestamp_to_scn(to_timestamp('2009-12-24 09:00:00','YYYY-MM-DD HH:MI:SS')) from dual;[其中时间可以选择在删除数据之前]
结果:13526973
select * from reportinfo AS OF SCN 13526973
发现删除之前的数据还在,所以只需要从SCN 13526973恢复数据即可。
--create table reporttest as select * from reportinfo AS OF SCN 13526973;
这是reporttest表中就是scn点的reportinfo数据.处理即可。
对于误删表,直接可以从回收站中找回,具体参考下面的方法:
flashback table typestruct to before drop;
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
ARTICLE_MATERIAL BIN$OV/MHUlYRg6W3ML7gpzfjg==$0 TABLE 2007-10-19:17:39:09
ARTICLE_MATERIAL BIN$C9ApTaW2TGaCbEvTbUOjLw==$0 TABLE 2007-09-18:13:49:47
USERINFO BIN$Qtld3Ky0Q5uNNGxtwQMB+w==$0 TABLE 2007-09-18:13:49:47
flashback table "BIN$OV/MHUlYRg6W3ML7gpzfjg==$0" to before drop;
BIN$OV/MHUlYRg6W3ML7gpzfjg==$0