2012-03-23 48 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 

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

オラクルのインストールとDBそのものは新しく(1日前)です。私はDROPエラーを得た後、私はまだテーブルからを選択することができ、SYSを使用して: -

EDIT私は別の表領域とユーザーを使用して、このテストを再試行(I作成したもの)と私は少し異なる振る舞いを得ました。しかし、この新しいユーザーを使用して、DROPエラーが発生した後、テーブルからを選択できなくなりました。

ソリューションは、我々は問題を発見:MDSYS.SDO_GEOR_SYSDATA_TABLEがドロップoperation.Theソリューションは、そのテーブルを復元することで防ぐこと、ありませんでした。ここでは、完全な解決策は、Gauravソニ(ところで、多くのありがとう)です。

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

catmd.sqlスクリプトは、データベース内でOracle空間に必要なすべてのオブジェクトをロードするスクリプトです。その後、ユーザーを削除します。

あなたも、私は問題はあなたがシステム表領域にテーブルを作成したことだと思うのOracleメタリンク

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) –

+0

Oracle Database 10g Express Editionリリース10.2.0.1.0 - Production – jpaires

+0

ロングショットのビットですが、他にもあるように機能しますここで発生します。 DATABASEまたは現在のスキーマにDROPトリガーがありますか? –

答えて

0

を参照することができます。ユーザー表スペースに作成するか、データを保管するために作成する必要があります。

+0

私は私の質問のEDITの部分で言ったように、私は別のユーザーとテーブルスペースで試しました。 – jpaires

+0

私はこれがテーブルの落下を防ぐ一般的な理由を知らない。私は 'SYSTEM'テーブルスペースにテーブルを作成して削除することができます。 –

3

私は、SQLトレース(ALTER SESSION SET SQL_TRACE=TRUE;)を有効にして再度ドロップを試みることをお勧めします。これにより、サーバー上のトレースファイル(udumpディレクトリ内)が生成されます。このファイルには、セッションが実行されたすべてのSQLが再帰文を含めて表示されます。これは失敗している再帰的なSQLステートメントを表示する必要があります。

+0

あなたの提案とGaurav'sを使用して私はそれを絞り込むことができました:問題はMDSYS.SDO_GEOR_DROP_USERトリガーであり、最も正確にはSDO_GEOR_SYSDATA_TABLEが存在しないようです!私はその表を選択しようとしましたが、「ORA-00942:表またはビューが存在しません」というメッセージが表示されます。その後、そのテーブルを使用する前に戻すトリガーを編集しました。テーブルを削除できます。次に、最後に、そのテーブルを使用した後すぐに戻るトリガーを再編集し、テーブルを削除できなくなりました。テーブルが存在しないか、テーブルが見つかりません。なぜどんなアイディアですか? – jpaires

+0

いいえ、考えられません。これはオラクルのSpatial Optionに関連していますが、これは私が経験したことのないものです。インストール処理中にエラーが発生した可能性があります。このオプションを使用しない場合は、削除することをお勧めします。 –

+0

多くの、多くのありがとう。私は同僚にこのテーブルの作成スクリプトを尋ねました。今私はテーブルを持っており、ついにテーブルを落とすことができました。しかし、私はこれがどうして起こったのか不思議です。 – jpaires

関連する問題