PURGE RECYCLEBIN;
DBA 可以使用以下命令清除任何表空间中的所有对象
PURGE DBA_RECYCLEBIN; |
可以看到,可以通过多种不同方法来管理回收站,以满足特定的需要。
表版本和闪回功能
用户可能会经常多次创建和删除同一个表,如:
create TABLE TEST (COL1 NUMBER); insert INTO TEST VALUES (1); commit; drop TABLE TEST; create TABLE TEST (COL1 NUMBER); insert INTO TEST VALUES (2); commit; drop TABLE TEST; create TABLE TEST (COL1 NUMBER); insert INTO TEST VALUES (3); commit; drop TABLE TEST; |
此时,如果您要对表 TEST 执行闪回操作,那么列 COL1 的值应该是什么?常规想法可能认为从回收站取回表的第一个版本,列 COL1 的值是 1。实际上,取回的是表的第三个版本,而不是第一个。因此列 COL1 的值为 3,而不是 1。
此时您还可以取回被删除表的其他版本。但是,表 TEST 的存在不允许出现这种情况。您有两种选择:
使用重命名选项:
FLASHBACK TABLE TEST TO BEFORE drop rename TO TEST2; FLASHBACK TABLE TEST TO BEFORE drop rename TO TEST1; |
这些语句将表的第一个版本恢复到 TEST1,将第二个版本恢复到 TEST2。 TEST1 和 TEST2 中的列 COL1 的值将分别是 1 和 2。或者,
使用表的特定回收站名称进行恢复。为此,首先要识别表的回收站名称,然后执行:
FLASHBACK TABLE “BIN$04LhcpnoanfgMAAAAAANPw==$0” TO BEFORE drop rename TO TEST2; FLASHBACK TABLE “BIN$04LhcpnqanfgMAAAAAANPw==$0” TO BEFORE drop rename TO TEST1; |
这些语句将恢复被删除表的两个版本。
警告……
取消删除特性使表恢复其原始名称,但是索引和触发器等相关对象并没有恢复原始名称,它们仍然使用回收站的名称。在表上定义的源(如视图和过程)没有重新编译,仍然保持无效状态。必须手动得到这些原有名称并应用到闪回表。
信息保留在名为 USER_RECYCLEBIN 的视图中。在对表进行闪回操作前,请使用以下查询来检索原有名称。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。