3

この質問は昨日投稿したものに関連していますが、さらに意味があります。

状況は次のとおりです。テーブルを削除できませ。次に例を示します。

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: error occurred at recursive SQL level 1 に注意してください。存在しないテーブルを削除しようとしても、次のエラーは表示されません。

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

どういうわけか、システムはドロップ時にテーブルを見つけることができません。

Oracle のインストールと DB 自体は新しいものです (1 日経過)。

編集 - 別のテーブルスペースとユーザー (作成したばかり) を使用してこのテストを再試行しましたが、少し異なる動作がSYSられました。ただし、この新しいユーザーを使用すると、エラーが発生した後、テーブルから選択できなくなりました。DROPDROP

解決

問題が見つかりました: MDSYS.SDO_GEOR_SYSDATA_TABLE が見つからないため、削除操作ができませんでした。解決策は、そのテーブルを復元することです。これがGaurav Soniによる完全な解決策です(ちなみに、どうもありがとうございました)。

スクリプト catmd.sql ($ORACLE_HOME/md/admin dir にあります) を実行します。

catmd.sql スクリプトは、Oracle Spatial が必要とするすべてのオブジェクトをデータベースにロードするスクリプトです。次に、ユーザーをドロップします。

オラクルのメタリンクも参照できます

Oracle Spatial Data Option の手動インストールの手順

SDO_GEOM_METADATA_TABLE に対する ORA-942 でのユーザー結果の削除

4

2 に答える 2