一、工作中遇到的一些小惊喜
1.最近在生产上修改别人脚本时,发现在清除表时用purge很多,之前只知道它是清楚表,表空间,表索引的,通过查找,发现 了它的很多妙用。
2.它和truncate有一拼,都是删完表后,不能回滚,直接释放资源的那种,它是可以直接清除表以及表所在的表空间了。
3.比drop最大区别就是在于是否提交,回滚,清除回收站残留资源
二、sql脚本解析
1.据Oracle官方给出,使用purge可以删的很彻底,不浪费资源
drop table/index tableName/indexName purge;
① 当然在Oracle 10g推出之后,增加了drop回闪的新特性,及flashback drop。
例子:
drop table tableName; --删除表
commit; --并且提交了
② 即使提交了,也是可以恢复的
先查看一下已经被删除的表在不在
show recyclebin;
查看drop掉的表在回收站后,准备开始用回闪,恢复
flashback table tableName to before drop; --闪回已经删除掉的表
③闪回之后,通过select进行查看,发现出现了小惊喜,删除掉的表从回收站恢复过来了。
2.彻底删除,恢复不了的那种
及在drop删除表或者索引后面 缀上purge就恢复不了了
本文深入探讨Oracle数据库中PURGE命令的使用方法及其与TRUNCATE和DROP的区别。通过实例演示如何彻底删除表和索引,以及如何利用闪回功能恢复已删除的表。
156

被折叠的 条评论
为什么被折叠?



