SQL> conn system/zhou@orcl
已连接。
SQL> drop table scott.emp;表已删除。SQL> rollback;回退已完成。SQL> delete from scott.emp;
delete from scott.emp
                  *
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> flashback table scott.emp to before drop;
flashback table scott.emp to before drop
*
第 1 行出现错误:
ORA-38305: 对象不在回收站中
SQL> conn scott/zhou14@orcl
已连接。
SQL> select * from emp;
select * from emp
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在
请问有什么简单的方法可以恢复system用户删除的表呢?

解决方案 »

  1.   

    我做一遍,可以恢复啊:
    $ sqlplus /nologSQL*Plus: Release 10.2.0.3.0 - Production on 星期六 10月 8 15:33:26 2011Copyright (c) 1982, 2006, Oracle.  All Rights Reserved. > conn system/oracle
    Connected.
    SYSTEM > drop table scott.emp;Table dropped.SYSTEM > delete from scott.emp;
    delete from scott.emp
                      *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SYSTEM > flashback table scott.emp to before drop;Flashback complete.SYSTEM > conn scott/tiger
    Connected.
    SCOTT > select count(*) from emp;  COUNT(*)
    ----------
            14SCOTT > 
      

  2.   

    是不是没有comment提交,然后再rollback.
      

  3.   


    drop 操作不需要提交,直接删除了,可能没有经过回收站,直接给清除了。
    看看回收站是否打开,
     sql> show parameter bin;如果value值是on就是打开的,应该可以闪回。
    如果value值是off就是关闭的,就没有了。还有,如果回收站被清空purged了,也无法闪回。