This discussion is archived
3 Replies Latest reply: May 7, 2012 1:03 PM by Barbara Boehmer RSS

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

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


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

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points