Create実行のSQL-DeveloperとSQL*Plusの違いについて
Oracle11g EE 環境です。
実はマテビューのリフレッシュで「ORA-00942」が発生したことに起因するご質問です。
Create文のDDLをメモ帳などで用意していた際に、途中に空白改行が存在していたのですが、
開発機のSQL-Developerでは問題なくCreate出来ていました。
検証機で全く同じDDLをSQL*Plusで実行したところ、途中の空白行がダメとエラーになったため
空白改行を全部削除して再実行することで問題なくCreate出来ました。
これはマテビューを生成するDDLなのですが、オブジェクトも存在するし、Selectしてもデータは
抽出されます。
ところが、ある運用管理ツールからマテビューリフレッシュの処理を起動すると「ORA-00942」
(オブジェクトがないか権限が無い)のエラーが発生しました。
前記のとおり存在しているのに、です。
何度Createしなおしても無事に生成されるものの、マテビューリフレッシュのエラーですし、
DDL内の「AS Select」以下のSQLを実行してもデータは抽出されます。
ちなみにリフレッシュは管理ツール内で「dbms_mview.refresh(viewName, refreshOption)」を
使用しています。
試しに検証機でもSQL-DeveloperでDDLを流したところ、当然生成しなおされて、なんと!
マテビューリフレッシュも正常終了となった次第です。
この現象の原因が分からないのですが・・・
SQL*Plusで初回に空白行でエラーとなったときに、へんなゴミでもできたのでしょうか?
SQL-Developer側で特別な何かが行なわれているのでしょうか?
説明もむずかしく、再現もしにくい内容で申し訳ありませんが、同じような経験のある方や
原因が分かる方がおられましたら、ご連絡いただきたいと思っています。
宜しくお願い致します。