目录
闪回技术
恢复mybonus表
彻底删除mybonus表
清空回收站
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
闪回技术
Flash Back 给予用户最为直接的支持之一就是给了用户后悔的机会
但是现在如果用户想去操作这个回收站,那么对用户而言,回收站要具备查看、恢复、清空、彻底删除几项功能
col object_name for a35;
col original_name for a35;
col type for a15;
select object_name,original_name,type,droptime from user_recyclebin;
SQL> select object_name,original_name,type,droptime from user_recyclebin;
OBJECT_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ORIGINAL_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TYPE DROPTIME
-------------------------------------------------- --------------------------------------
BIN$BwKcWES+Rx+6TclaSSF4fg==$0
EMP30
TABLE 2024-03-12:22:11:26
BIN$/C/OssuZSpeHAZ4AVyWONQ==$0
MYBONUS
TABLE 2024-03-13:21:43:23
OBJECT_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ORIGINAL_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TYPE DROPTIME
-------------------------------------------------- --------------------------------------
这是我的回收站
可以看到所有被删除的对象原先的名字、类型以及删除的时间
现在发现 mybonus表删除错误,不应该进行删除操作,则可以进行闪回
恢复mybonus表
SQL> flashback table mybonus to before drop;
闪回完成。
但是有人认为,这样删除太麻烦了,希望可以像 Windows 那样彻底删除,这个时候可以在删除表中使用“purge”选项
彻底删除mybonus表
SQL> drop table mybonus purge;
表已删除。
删除回收站中的一张表
SQL> select object_name,original_name,type,droptime from user_recyclebin;
OBJECT_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ORIGINAL_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TYPE DROPTIME
-------------------------------------------------- --------------------------------------
BIN$BwKcWES+Rx+6TclaSSF4fg==$0
EMP30
TABLE 2024-03-12:22:11:26
回收站还有一个emp30表,这时候需要彻底删除
SQL> purge table emp30;
表已清除。
清空回收站
purge recyclebin;
SQL> purge recyclebin;
回收站已清空。
该语句运行后,回收站中所有内容都被清空。回收站功能只有 Oracle 数据库提供,其他数据库还没有此类的支持,所以对于此部分的功能会使用即可