请教个问题:我不小心删除了A表,情急之下,又用原来的脚本语句建了一个A表出来,但马上想到不对,因为这样无法用FLASHBACK TABLE A TO BEFORE DROP 还原A表了,请问,我现在还有办法找回A表中的数据么 ?

解决方案 »

  1.   

    在recyclebin里找找
    一定有的,只要你没有purge
      

  2.   

    hao@PPDB>select * from test1;         A
    ----------
             1hao@PPDB>drop table test1;表已删除。hao@PPDB>show recyclebin
    ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    ---------------- ------------------------------ ------------ -------------------
    TEST1            BIN$p8sLGVewThWZhCDpS28x2g==$0 TABLE        2010-10-12:15:31:25
    hao@PPDB>create table test1 (a int);表已创建。hao@PPDB>show recyclebin
    ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    ---------------- ------------------------------ ------------ -------------------
    TEST1            BIN$p8sLGVewThWZhCDpS28x2g==$0 TABLE        2010-10-12:15:31:25
    hao@PPDB>
      

  3.   

    我用这个语句查询 select * from recyclebin没有查到任何记录?请问改如何使用recyclebin查询到丢失的表和表中的数据,谢谢了!!
      

  4.   

    那有可能是DB设置recyclebin中不接收,如果这样就没戏了
    select * from recyclebin没有就没戏
      

  5.   

    我尝试了两种操作,
    第一种:
      首先 drop table testA; 在select * from recyclebin中可以查到刚才的操作,用FLASHBACK TABLE testATO BEFORE DROP; 可以恢复。第二种:
      首先 drop table testA;然后重新create testA;
      再用FLASHBACK TABLE testATO BEFORE DROP恢复的时候,报错,提示我要恢复表已经存在。
       然后修改表testA的名字为testB,再用FLASHBACK TABLE testATO BEFORE DROP恢复,恢复成功。楼主如果recyclebin没有查到任何记录,那有可能跟DB设置有关吧。
      

  6.   

    应该可以flashback,你实验一下
      

  7.   

       不能恢复原因有2种可能:
      1. 数据库版本是oracle9i或之前版本
      2. 你的表空间默认为system