日期:2014-05-16  浏览次数:21035 次

system用户意外删除表,如何恢复?


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用户删除的表呢?

------解决方案--------------------
我做一遍,可以恢复啊:


$ sqlplus /nolog

SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 10月 8 15:33:26 2011

Copyright (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(*)
----------
14

SCOTT >