此問題與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
你安裝了哪個oracle版本? [鏈接](http://www.dba-oracle.com/sf_ora_00604_error_occurred_and_recursive_sql_level_string.htm) – 2012-03-23 11:34:30
Oracle數據庫10g快捷版版本10.2.0.1.0 - 生產 – jpaires 2012-03-23 11:40:40
有點遠景,但它表現得像其他東西發生在這裏。 DATABASE或您當前的架構上是否有DROP觸發器? – 2012-03-23 12:02:34