goo blog サービス終了のお知らせ 

優柔不断なプログラマの日記

思いつきでポチポチ書きます

(ORACLE SQL)ビューやストアドを再コンパイルする

2007年11月30日 | プログラミング
ダンプファイルなんかからインポートすると、ビューが"INVALID"になっていることがあります。
たぶん、インポートされる順序に寄るのだと思っています。

たとえば、ビューの中でストアドファンクション使ってたりするケース。ビューをインポートする時点ではまだファンクションが無いわけですからエラーになります。
PROCEDURE、FUNCTION、PACKAGEでも同じように順序によって"INVALID"になる場合がありますね。

まあ、実際にビューが実行される時点でそのファンクションがあれば問題なく実行され、ステータスも"VALID"になるので問題ないのですが、インポートが完了した時点で、"INVALID"があるっていう状況は不安がありませんか?
そんなとき、別管理しているソースをコンパイルするのではなく、オラクル内に格納されているソースを、再コンパイル(リコンパイル)する構文です。

ALTER VIEW <view name> COMPILE;
ALTER FUNCTION <function name> COMPILE;
ALTER PROCEDURE <procedure name> COMPILE;
ALTER PACKAGE <package name> COMPILE;

「ORA-24344: 正常に終了しましたが、コンパイル・エラーがあります。」
が出たらホントにエラーです。気づけてよかったですね。

最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
sanks (straightbourbon)
2009-02-13 10:16:41
参考になりました。
サンキューです。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。