問題現象:刪除數據庫表,oracle中出現bin$XXXXXXXXXX==$0表 ,在對其 (bin$XXXXXXXXXX==$0)刪除時,報 ORA-00933: SQL 命令未正確結束
出現原因:從oracle10g開始刪除數據庫表的時候並不是真正刪除,刪除的表系統會自動給他重命名 BIN$開頭的名字 在把這些文件放到了recyclebin中,這個過程類似 windows裏面刪除的文件會被臨時放到回收站中。
查看 bin$ 開頭的表情況:
使用show tables 命令看不到這些表,查看這些表的命令如下:
命令一 :SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t; -- 查詢數據庫中bin$開頭的表
命令二:show recyclebin --查看被刪掉的表的詳細信息
命令三: select * from recyclebin;
解決方案:
方案一:清空回收站(recyclebin)
命令 : PURGE recyclebin;
方案二:收回表的命令:
命令 :flashback table 原表名 to before drop;
方案三:直接刪除表,不經過回收站
方法一: drop table 表名 purge;
方法二 :停用數據庫的回收戰功能
10.1版本中,修改隱藏參數 _recyclebin
alter system set "_recyclebin" = false;
10.2版本中,
alter system set recyclebin = off;