test@ORCL>exec :scn := dbms_flashback.get_system_change_number
PL/SQL procedure successfully completed.
test@ORCL>print scn
SCN
----------
682621
test@ORCL>select count(*) from emp;
COUNT(*)
----------
14
test@ORCL>delete from emp;
14 rows deleted.
test@ORCL>select count(*) from emp;
COUNT(*)
----------
0
Commit complete.
test@ORCL>select *
2 from (select count(*) from emp),
3 (select count(*) from emp as of scn:scn)
4 /
COUNT(*) COUNT(*)
---------- ----------
0 14
test@ORCL>flashback table emp to scn:scn
2 ;
Flashback complete.
PL/SQL procedure successfully completed.
test@ORCL>print scn
SCN
----------
682621
test@ORCL>select count(*) from t;
COUNT(*)
----------
0
test@ORCL>drop table t;
Table dropped.
test@ORCL>flashback table t to scn:scn
2 ;
flashback table t to scn:scn
*
ERROR at line 1:
ORA-00942: table or view does not exist
这样无法恢复被删除的表
There is a table tb in database, use it to perform dropping table and flashbacking operation;
There is a index tb_index on table tb;
Drop table tb ;
Table tb is missing from system table tab;
The table tb deleted is in recyclebin.
The index on table tb is deleted also;
Use flashback command to restore the table had been deleted.
参考:http://www.sudu.cn/info/article/articleInfo.php?aId=196883