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中国
作者
相关推荐
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。
-
如何应对Oracle EBS实施中的六个挑战?
在18个月的时间里,Vitamix启动运行了Oracle电子商务套件(E-Business Suite,EBS),而且Vitamix还对诸如Oracle ATG Web Commerce等所有页面属性进行了重新整理,并实现了全球数据中心。
-
Oracle的云产品“砸了自己脚”?
Sparc和Solaris都是Oracle云计划的一部分,但是硬件和支持人员的减少意味着本地Solaris和Sparc将变得更加稀少。
-
2017年3月数据库流行度排行榜 Oracle卫冕之路困难重重
时隔一个月,数据库市场经过一轮“洗牌”,旧的市场格局是否会被打破,曾经占巨大市场份额的企业是否可能失去优势?