说到一般的SELECT和数据治理语言语句,一个被删除的表确实就是被删除了。这与其它任何命令都没有区别,你所有的软件都会假定那个被删除的表是真的没有了。但是现在,DROP实际上是RENAME,这就有可能取消删除,通过把这个表的名字再改回来到最初的名字。然而,这不能保证成功。被删除的表的空间有可能被再次使用。并且假如在这个时间段里面有另外一个表被创建了,重新使用了被删除表的名字,那么情况就复杂了。

被删除的对象可以查询到,通过查看“回收箱”可以得到它们的新名字。这是一个所有被删除对象的列表,映射到原来的表,索引投射到系统给被删除对象生成的名字上。每个用户都有一个回收箱,在USER_RECYCLEBIN数据字典视图中可以看到,或者是一个全局的画面,你可以查询DBA_RECYCLEBIN。回收箱对象占用的空间可以在表空间碰到空间压力的时候自动重用(之后对象就无法恢复了),或者你可以手工地强制Oracle真正地删除对象,使用PURGE命令。
贴士:回闪删除不能保证成功,但是它也可以工作良好。你越早执行它,成功的可能性越大。
查询示范:
删除表之后,你如何才能访问到其中的行呢?(选择最好的答案)
5、使用AS OF语法查询表
6、使用BEFORE DROP语法查询表
7、使用回收箱名字查询表
8、不能查询,直到恢复
假如表已经被删除了,另外一个表用同样的名字创建,以下哪句话是正确的?(单选)
5、你必须在你回闪被删除的表之前把这个新表改名
6、假如你为那个被删除的表指定一个新的名字的话,可以回闪这个表。
7、你可以在不同的计划中回闪这个被删除的表
8、你必须在回闪原来的表之前删除这个新表。
以下那个环境中回闪会起作用?(单选)
6、当表被截断的时候
7、当表被清除的时候
8、当用户被删除的时候
9、当索引被删除的时候
10、以上都不是
评论加载中…
![]() |