ORACLE删除残余问题
我根据学习的视频,在scott的用下建立两张临时表,后来不用就用drop命令删掉了。过后用
select * from tab;查看用户表信息时发现多了两条乱码名的表,不知道是怎么回事,求大神们指教。
补充:我在用drop删除表的时候没有删除表中的行条目,是不是跟这个有关?
------最佳解决方案--------------------没有关系,可以用下面
drop tablename purge;
------其他解决方案--------------------
在oracle 10g引入了recyclebin,对于一个对象的删除,oracle先通过修改数据字典,将其及其关联对象(索引、约束等)重命名,然后放入recyclebin。被删除的对象将占用创建时的同样的空间大小,当出现空间压力时,这个空间才会被慢慢回收。但是当对象被删除之后,这部分空间会计入free space,被看作是自由空间,可重用,在dba_free_space可查。如果能够确认删除对象,则可以使用purge命令完全删除,这样可以减少动态空间回收带来的性能代价。
每个用户都有属于自己的一个recyclebin。查看recyclebin的方法很多,最常用的是select * from recyclebin;最简单的是show recyclebin。需要注意的是show recyclebin只列出基表,被删除的表的关联对象则不显示。recyclebin里对象的名称也可以被当做普通名称一样使用
------其他解决方案--------------------以上是理论介绍
想要完全删除
drop后面加个purge即可
------其他解决方案--------------------追问一下:
这个recyclebin,用什么语句可以清空?
------其他解决方案--------------------
追问一下:
这个recyclebin,用什么语句可以清空?
------其他解决方案--------------------Purge recyclebin
可以清除执行该命令的用户所能看到的所有recyclebin对象。也就是普通用户能清除属于自己的对象,而sysdba用户则能清除所有recyclebin中的对象。
SQL> purge recyclebin;
回收站已清空。
------其他解决方案--------------------
purge recyclebin;
------其他解决方案--------------------删除recyclebin中的对象
我们用PURGE,语句PURGE TABLE "TABLE_NAME";
注:双引不要忘记,对RECYCLEBIN中对象操作都要有" "。
如上例,则:
SQL>purge table "BIN$6qAKR9ljQo+l+1gDCV8xCQ==$0";
SQL>PURGE RECYCLEBIN; --可以清空RECYCLEBIN;
------其他解决方案--------------------结贴晚了,见谅!