1. 程式人生 > >ORA-00933: SQL 命令未正確結束處理辦法

ORA-00933: SQL 命令未正確結束處理辦法

問題現象:刪除資料庫表,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;