私はこの奇妙な問題を昨日から持っています。いくつかのオプションを試してみましたが、実際にはORACLEとDB自体を再インストールしました。オラクル - ゾンビテーブル
ここに問題があります:私はこのテーブルをいくつかのゾンビです。次の症状があります。
SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME='MYTABLE'
テーブルが存在するレコードを返します。
SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'MYTABLE'
MYTABLEのすべての列を返します。今のところうまくいって、テーブルが存在します。
SELECT * FROM MYTABLE
返しORA-00942:表またはビューが存在しません。 この時点で私はかなり混乱しています。テーブルはUSERTABLES上に存在するようですが、それ以上は選択できません。
CREATE TABLE MYTABLE (Foo NUMBER) TABLESPACE MYTABLESPACE
戻り値: ORA-00604:エラーが再帰SQLレベルで1 ORA-00001が発生しました:一意制約(SYS.I_OBJ2)私はこのエラーを理解していない
に違反しました。しかし、最高はまだ来ていません。
SELECT * FROM MYTABLE
驚くべきことに、上記のクエリ(3番目のクエリの正確なコピー)は、今やいくつかのレコードを返します。 さらに、私は、列Fooが存在しないことに気付きました。今見ている表は、他の列を持つ私の最初の表です。
DROP TABLE MYTABLE
は、私は今、テーブルを削除しようとすると、私は次のエラーを取得:
ORA-00604のエラーが再帰SQLレベルで発生した1 ORA-00942:表またはビューが存在しません ORA -06512:行19
SELECT * FROM MYTABLE
これまで以上に混乱で、私は上記のクエリと、驚き驚きを試し、表がもはや存在しません。
私はこのテーブルをUSERTABLES上に置いていますが、選択できませんが、同じ名前の新しいテーブルを作成するとエラーになりますが、以前のバージョンのそのテーブルにはいくつかのレコードがあります。
どのような考えですか?私は本当にあなたの助けが必要:(
EDIT - 私は今確認:。。私は、任意のテーブルをドロップすることができないんだ。これはちょうど新しい症状かもしれませんが
ソリューション
問題でしたMDSYS.SDO_GEOR_SYSDATA_TABLEテーブルが見つからず、ドロップイベントトリガーがそのテーブルにアクセスしようとしていたため、エラーが発生しました。解決策はそのテーブルを復元していました。
それは本当の表を見てみる必要があるように思われる - おそらく同義語の問題などを避けるようにそうテーブルが存在するかどうかを見るためにクエリを実行するとき、あなたは誰として接続していますか?それは普通のユーザーですか、システムですか、それとも何ですか?最初のクエリでOWNER、TABLE_NAMEを選択します。 OWNER.TABLE_NAMEのようにフルネームを指定して、あなたが思っていることが実際に起こっているかどうかを確認してみてください。 – MJB
あなたは100%確信していますか?確かに '' MYTABLE''であり、 ''MyTable''などではありません。 – Ben
@MJB良い点ですが、私はすでにそれを試みました。 USER_TABLESにはOWNER列はありませんが、ALL_TABLEにはその列があります。私はALL_TABLE上のOWNERをチェックし、そのユーザーを使用して接続しています。私もフルネームを指定しようとしましたが、運はありませんでした。 – jpaires