我们都知道,在Oracle中,当我们DROP一张表的时候,这张表其实并没有删除,只是在数据自定中把该表重命名了(SYS表空间除外),此时我们可以在Oracle回收站中找回该表,下面我们就看一下关于Oracle Recyclebin的一些操作吧:
查询回收站:
SELECT * FROM RECYCLEBIN;
SELECT * FROM USER_RECYCLEBIN; --USER_RECYCLEBING与RECYCLEBIN是同义词,字段完全一样
开启或关闭回收站:
会话级别开启/关闭
ALTER SESSION SET RECYCLEBIN = OFF/ON;
系统级别开启/关闭
ALTER SYSTEM SET RECYCLEBIN = OFF/ON SCOPE=SPFILE;
(需要重启数据库)
查询回收站中的表数据:
SELECT * FROM "BIN$KlM0Cy+QH0jgU3AVGujw6s==$1";
清空回收站中的数据:
PURGE TABLE EMPLOYEES;
清空回收站某张表
PURGE RECYCLEBIN;
清空回收站所有数据
PURGE RECYCLEBIN EXAMPLE USER SCOTT;
清空回收站数据,但保留scott用户的数据
还原回收站中的数据表:
FLASHBACK TABLE EMPLOYEES TO BEFORE DROP;
还原成原来的表名
FLASHBACK TABLE EMPLOYEES TO BEFORE DROP RENAME TO EMPLOYEES_NEW;
还原成新的表名