コンパウンド・ステートメント
1 つのコンパウンド・ステートメントを他のステートメントとグループ化して、1 つの実行可能ブロックにします。 コンパウンド・ステートメントは独自に実行することもできれば、プロシージャー、関数、メソッド、およびトリガーなどのデータベース・オブジェクトの定義に組み込むこともできます。 コンパウンド・ステートメント用の異なる SQL ステートメントがあります。それぞれに当てはまる独自の相違点および制約事項があるためです。
コンパウンド・ステートメントは、インライン・コンパウンド・ステートメント (これまでは動的コンパウンド・ステートメント呼ばれていました) またはコンパイル済みコンパウンド・ステートメントのいずれかになります。 これら 2 つのステートメントの違いを以下の段落に記します。
- インライン・コンパウンド・ステートメント
- インライン・コンパウンド・ステートメントはアトミックで、BEGIN ATOMIC キーワードと END キーワードを使用して定義します。これら 2 つのキーワードの間で、他の SQL ステートメントを定義および実行できます。 インライン・コンパウンド・ステートメントには、変数宣言、SQL ステートメント、およびインライン SQL PL ステートメントと呼ばれる SQL PL ステートメントのサブセットを含めることができます。
- コンパイル済みコンパウンド・ステートメント
- コンパイル済みコンパウンド・ステートメントはアトミックではなく、BEGIN キーワードと END キーワードを使用して定義します。これら 2 つのキーワードの間で、他の SQL ステートメントを定義および実行できます。 コンパイル済みコンパウンド・ステートメントには、SQL ステートメントとすべての SQL PL ステートメントを含めることができます。
コンパイル済みコンパウンド・ステートメントで使用可能な追加フィーチャーを活用する場合には、インライン・コンパウンド・ステートメントではなくコンパイル済みコンパウンド・ステートメントを使用するよう選択できます。
コンパウンド・ステートメントは、Db2® コマンド行プロセッサーから実行可能な小さなスクリプトを作成するために主に使用できます。 また、ルーチンまたはトリガーの本体を定義する際にも使用します。