最近我在学oracle数据库时遇到一种情况就是在删除表的时候,表是可以删除,但是再用select * from tab;语句查询时,会出现好多以BIN开头的文件,而且删除一个表就会出现一个以BIN开头的文件,看着就烦,刚搜了一些关于这种情况的解决办法,与各位分享一下,与我有相同烦恼的同学下面是您最满意的解决办法,具体如下:
首先解释一下以BIN开头表是什么东东?在10g中bin开头表示已经删除的放在回收站的表,oracle在删除表时并没有彻底的删除,而是把表放入回收站!purge recyclebin清空回收站即可。
以下是具体解决办法:
10g的新特性flashback闪回区。
当误删除某些表时,可以通过命令恢复回来:
flashback table tablename to before drop;
查看是否开启了闪回功能:
select flashback_on from v$database;
如果确定某些表确实可以删除,可以使用下面的语句,就不会出现BIN$开头的表了
drop table table_name purge;
-------------------------------------------------------------------------------------------------------
删除Bin开头的表,即已经drop但存在于回收站中的表:
-->
查询所有此类表SQL> select * from recyclebin where type='TABLE';
用来删除回收站中所有的表SQL> PURGE RECYCLEBIN --------这语句就能清除所有以BIN开头的残留文件
用来删除指定的表SQL> PURGE TABLE TABLE_NAME
用来闪回被删除的表SQL> FLASHBACK TABLE table_name TO BEFORE DROP;
-->
-------------------------------------------------------------------------------------------------------
可以在的Drop表时不产生Bin型表SQL> DROP TABLE "TableName" purge;