ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

プログラムのコンパイル

COMPILE文を使用して、プログラムを明示的にコンパイルできます。プログラムを明示的にコンパイルしない場合、プログラムを最初に実行するときにコンパイルされます。

プログラムのコンパイル時、プログラム文は、効率的に処理されるコードに変換され、そのプログラムの元のテキストよりもはるかに高速に実行されます。プログラム内にエラーが検出された場合、コンパイルは完了せず、プログラムはコンパイルされていないと判断されます。

プログラムがコンパイルされると、現行のセッションでプログラムを実行するたびにコンパイルされたコードが使用されます。プログラムのコンパイル後にアナリティック・ワークスペースを更新およびコミットすると、コンパイルされたコードはアナリティック・ワークスペースに保存され、今後のセッションでプログラムを実行するために使用されます。このため、プログラムのコンパイル後に更新およびコミットを確実に行う必要があります。これは、プログラムが、多くのユーザーが実行しているアプリケーションの一部である場合は特に重要です。コンパイルされたプログラムがアナリティック・ワークスペースに保存されていない場合、プログラムは各ユーザー・セッションで個別に再コンパイルされます。

例9-68「プログラムのコンパイル」では、COMPILEを使用したプログラムのコンパイルについて解説します。

プログラムがコンパイルされたかどうかの確認

OBJファンクションでISCOMPILEDオプションを使用すると、アナリティック・ワークスペース内の特定のプログラムが、最後に変更されてからコンパイルされたかどうかを判断できます。このファンクションは、ブール値を返します。

SHOW OBJ(ISCOMPILED 'myprogram')

コンパイルを回避するプログラミング方法

アンパサンド置換を含むプログラム行は、コンパイルされません。すべての構文エラーは、プログラムが実行されるまで検出されません。他の行が正常にコンパイルされたプログラムは、コンパイルされたプログラムと判断されます。

プログラムがオブジェクトを定義し、プログラム内でそのオブジェクトを使用する場合、プログラムはコンパイルされません。そのオブジェクトがまだアナリティック・ワークスペースに存在しないため、COMPILEはオブジェクトへの参照をスペル間違いとして処理します。