日期:2014-05-17  浏览次数:20839 次

ORACLE删除残余问题
我根据学习的视频,在scott的用下建立两张临时表,后来不用就用drop命令删掉了。过后用
select * from tab;查看用户表信息时发现多了两条乱码名的表,不知道是怎么回事,求大神们指教。

补充:我在用drop删除表的时候没有删除表中的行条目,是不是跟这个有关?
------最佳解决方案--------------------
没有关系,可以用下面
drop tablename purge;
------其他解决方案--------------------
引用:
我根据学习的视频,在scott的用下建立两张临时表,后来不用就用drop命令删掉了。过后用
select * from tab;查看用户表信息时发现多了两条乱码名的表,不知道是怎么回事,求大神们指教。

补充:我在用drop删除表的时候没有删除表中的行条目,是不是跟这个有关?



在oracle 10g引入了recyclebin,对于一个对象的删除,oracle先通过修改数据字典,将其及其关联对象(索引、约束等)重命名,然后放入recyclebin。被删除的对象将占用创建时的同样的空间大小,当出现空间压力时,这个空间才会被慢慢回收。但是当对象被删除之后,这部分空间会计入free space,被看作是自由空间,可重用,在dba_free_space可查。如果能够确认删除对象,则可以使用purge命令完全删除,这样可以减少动态空间回收带来的性能代价。

 

         每个用户都有属于自己的一个recyclebin。查看recyclebin的方法很多,最常用的是select * from recyclebin;最简单的是show recyclebin。需要注意的是show recyclebin只列出基表,被删除的表的关联对象则不显示。recyclebin里对象的名称也可以被当做普通名称一样使用

------其他解决方案--------------------
以上是理论介绍
想要完全删除
drop后面加个purge即可
------其他解决方案--------------------
追问一下:


这个recyclebin,用什么语句可以清空?
------其他解决方案--------------------
引用:
以上是理论介绍
想要完全删除
drop后面加个purge即可


追问一下:


这个recyclebin,用什么语句可以清空?
------其他解决方案--------------------
Purge recyclebin
可以清除执行该命令的用户所能看到的所有recyclebin对象。也就是普通用户能清除属于自己的对象,而sysdba用户则能清除所有recyclebin中的对象。
SQL> purge recyclebin;
回收站已清空。
------其他解决方案--------------------
引用:
引用:以上是理论介绍
想要完全删除
drop后面加个purge即可

追问一下:


这个recyclebin,用什么语句可以清空?

purge recyclebin;
------其他解决方案--------------------
删除recyclebin中的对象
我们用PURGE,语句PURGE TABLE "TABLE_NAME"; 
注:双引不要忘记,对RECYCLEBIN中对象操作都要有" "。
如上例,则:
SQL>purge table "BIN$6qAKR9ljQo+l+1gDCV8xCQ==$0";
SQL>PURGE RECYCLEBIN; --可以清空RECYCLEBIN;


------其他解决方案--------------------
结贴晚了,见谅!