ストアード・プロシージャー
プロシージャー (しばしば、ストアード・プロシージャーと呼ばれる) とは、操作を実行するために呼び出すことができるプログラムのことです。プロシージャーには、ホスト言語ステートメントおよび SQL ステートメントの両方を含めることができます。SQL のプロシージャーの場合も、ホスト言語のプロシージャーの場合と同じ利点があります。
DB2® のストアード・プロシージャー・サポートは、SQL アプリケーションが SQL ステートメントを使用してプロシージャーを定義し、呼び出すための手段を提供します。 ストアード・プロシージャーは、分散型と非分散型の両方の DB2 アプリケーションで使用することができます。 ストアード・プロシージャーを使用することの利点の 1 つは、分散アプリケーションの場合に、アプリケーション・リクエスター (すなわちクライアント) での CALL ステートメントの 1 回の処理で、アプリケーション・サーバー上で多量の作業を実行できることです。
プロシージャーは、SQL プロシージャーまたは外部プロシージャーとして定義することができます。外部プロシージャーとしては、サポートされる任意の高水準言語プログラム (システム/36 のプログラムおよびプロシージャーを除く) または REXX プロシージャーが可能です。このプロシージャーは、SQL ステートメントを含む必要はありませんが、SQL ステートメントを含むことができます。SQL プロシージャーは、全体が SQL で定義され、SQL ステートメント (SQL 制御ステートメントを含む) を含むことができます。
ストアード・プロシージャーをコーディングするには、次のことについて理解している必要があります。
- CREATE PROCEDURE ステートメントによるストアード・プロシージャーの定義
- CALL ステートメントによるストアード・プロシージャーの呼び出し
- パラメーターの引き渡し規則
- プロシージャーを呼び出しているプログラムに完了状況を戻す方法
ストアード・プロシージャーは、CREATE PROCEDURE ステートメントを使用して定義できます。 CREATE PROCEDURE ステートメントは、プロシージャーおよびパラメーター定義をカタログ表 SYSROUTINES および SYSPARMS に追加します。 その後、これらの定義は、システムにおける任意の SQL CALL ステートメントによりアクセスできるようになります。
外部プロシージャーまたは SQL プロシージャーを作成するには、SQL CREATE PROCEDURE ステートメントを使用できます。
以下の節では、ストアード・プロシージャーの定義と呼び出しに使用される SQL ステートメント、ストアード・プロシージャーにパラメーターを渡す方法、およびストアード・プロシージャーの使用例について説明します。
ストアード・プロシージャーに関する詳細については、ストアード・プロシージャー、トリガー、およびユーザー定義関数 DB2 Universal Database™ for iSeries を参照してください。