2012-03-23 85 views
3

此問題與one I posted yesterday有關,但具有更多含義。Oracle - 無法刪除表格

情況是:我無法下降ANY表。這裏有一個例子:

SQL> CREATE TABLE FOO (BAR NUMBER) TABLESPACE SYSTEM 
/
Table created. 

SQL> SELECT COUNT(1) FROM FOO; 
    COUNT(1) 
---------- 
     0 

SQL> DROP TABLE FOO; 
ERROR at line 1: 
ORA-00604: error occurred at recursive SQL level 1 
ORA-00942: table or view does not exist 
ORA-06512: at line 19 

所以,表似乎存在,但我不能夠放棄它。

注意錯誤ORA-00604:在遞歸SQL級別1處發生錯誤。如果我嘗試刪除一個不存在的表,這個錯誤不會出現:

SQL> DROP TABLE NON_EXISTING_TABLE 
ERROR at line 1: 
ORA-00942: table or view does not exist 

不知何故,該系統無法找到表在下降時間

oracle安裝和數據庫本身是新的(一天的舊)。

編輯 - 我用重試另一個表空間和用戶(我剛剛創建的)這個測試,我得到一個稍微不同的行爲:使用SYS,我得到了DROP錯誤後,我仍然可以從表中選擇。但是,使用這個新用戶後,我得到了DROP錯誤,我不再可以從表中SELECT

解決方案

我們發現了問題所在:MDSYS.SDO_GEOR_SYSDATA_TABLE失蹤,防止滴operation.The解決方案是恢復該表。這裏是完整的解決方案,由Gaurav Soni(順便說一下,非常感謝)。

運行腳本catmd.sql(位於$ ORACLE_HOME/md/admin目錄中)。

catmd.sql腳本是加載數據庫中Oracle空間所需的所有對象的腳本。然後放下用戶。

你也可以參考Oracle metalinks

Steps for Manual Installation of Oracle Spatial Data Option

Dropping user results in ORA-942 against SDO_GEOM_METADATA_TABLE

+0

你安裝了哪個oracle版本? [鏈接](http://www.dba-oracle.com/sf_ora_00604_error_occurred_and_recursive_sql_level_string.htm) – 2012-03-23 11:34:30

+0

Oracle數據庫10g快捷版版本10.2.0.1.0 - 生產 – jpaires 2012-03-23 11:40:40

+0

有點遠景,但它表現得像其他東西發生在這裏。 DATABASE或您當前的架構上是否有DROP觸發器? – 2012-03-23 12:02:34

回答

0

我認爲這個問題是您創建的系統表空間中的表。您應該在用戶表空間上創建它或創建一個來存儲您的數據。

+0

正如我在我的問題的編輯部分所說,我嘗試了一個不同的用戶和表空間。 – jpaires 2012-03-23 12:19:11

+0

我不知道爲什麼這會阻止桌子掉落的一般原因。我可以在我的'SYSTEM'表空間中創建和刪除表。 – 2012-03-23 12:21:03

3

我建議你激活SQL跟蹤(ALTER SESSION SET SQL_TRACE=TRUE;)並再次嘗試下降。這將在服務器上(在udump目錄中)生成一個跟蹤文件,該文件將顯示會話執行的所有SQL,包括遞歸語句。這應該向您顯示失敗的遞歸SQL語句。

+0

使用你的建議和Gaurav的我能夠縮小它:問題是與MDSYS.SDO_GEOR_DROP_USER觸發器,最準確地與SDO_GEOR_SYSDATA_TABLE似乎並不存在!我試圖選擇該表,並得到「ORA-00942:表或視圖不存在」。然後我編輯觸發器在使用該表之前返回,現在我可以刪除表格。接下來,最後,我使用該表格重新編輯觸發器以立即返回,並且不再可以刪除表格。該表不存在或無法找到。任何想法爲什麼? – jpaires 2012-03-23 14:56:39

+0

不知道。這與Oracle的Spatial Option相關,我相信,我沒有任何經驗。可能是在安裝過程中發生錯誤。如果你不使用這個選項,最好的辦法就是刪除它。 – 2012-03-23 15:06:25

+0

很多很多,謝謝。我已經向我的同事詢問了此表的創建腳本。現在我有桌子,我終於可以放桌子了。不過,我仍然好奇這是怎麼發生的。 – jpaires 2012-03-23 15:28:56