3 Replies Latest reply: May 7, 2012 3:03 PM by Barbara Boehmer RSS

    マテリアライズドビューの削除

    931965
      マテリアライズドビューを削除⇒再作成をしたいのですが、
      削除ができなくなりました。経緯は以下です。


      1.作成
       CREATE MATERIALIZED VIEW MV_XXX
       BUILD IMMEDIATE
       REFRESH FORCE
       ON DEMAND
       START WITH SYSDATE NEXT SYSDATE + 1
       WITH PRIMARY KEY
       AS
       SELECT ・・・

       で正常に作成。

      2.削除(初回)
       drop MATERIALIZED VIEW MV_XXX
       とすると、
       
       ORA-04020オブジェクト MV_XXXをロックしようとしてデットロックを検出しました
       
       となりましたが、EM上からは消えていました。

      3.再作成
       それでは、と CREATE MATERIALIZED VIEW
       すると、ORA-00955: すでに使用されているオブジェクト名です。
       といわれてしまいます。

      4.user_objectsで確認
       select object_name, object_type from user_objects where object_name like 'MV_%';
       とするとテーブルとマテリアライズドビューの両方に同名のオブジェクトがヒットする

      5.テーブルを削除
       テーブルはDropTableできた

      で行き詰まり、

      ・Drop materialized viewはその後何回やっても
       マテリアライズド・ビューが削除されました。
       と正常に処理される

      ・select object_name, object_type from user_objects where object_name like 'MV_%';
       はマテリアライズドビューだけがヒットする

      ・EnterpriseManagerからはマテビューが見えない

      ・Select count(*) from MV_XXX を実行すると
      行1でエラーが発生しました。:
      ORA-00942: 表またはビューが存在しません。

      ・CREATE MATERIALIZED VIEW
       すると、ORA-00955: すでに使用されているオブジェクト名です。
       といわる。

      の状態から抜け出せなくなりました。
      表領域やユーザーの削除を行わず解決できないでしょうか?

      oracleの再起動でも治りませんでした。

      すいません、どなたかご教示お願いたします。

      Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
      です。

      SlideArea

      Edited by: SlideArea on 2012/05/07 20:51

      Edited by: SlideArea on 2012/05/07 20:53