ORA-00933: SQL 命令未正確結束處理辦法
阿新 • • 發佈:2019-02-08
問題現象:刪除資料庫表,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;