ストアード・プロシージャーの作成

ストアード・プロシージャーを作成するためのプロセスは、作成するストアード・プロシージャーのタイプに応じて異なります。

始める前に

以下のいずれかのタイプのプロシージャーを使用する前に、Db2 環境のいくつかの構成タスクを完了する必要があります。

  • 外部ストアード・プロシージャー
  • 少なくとも次のいずれかの条件を満たすネイティブ SQL プロシージャー:
    • 少なくとも 1 つの外部ストアード・プロシージャー、外部 SQL プロシージャー、またはユーザー定義関数を呼び出す。
    • ALLOW DEBUG MODE または DISALLOW DEBUG MODE を使用して定義されている。
  • 外部 SQL プロシージャー (非推奨)
  • Db2 提供のストアード・プロシージャー

手順については、 「インストール手順 21: ストアド プロシージャおよびユーザー定義関数を実行するために Db2 を構成する」 または 「移行手順 23: ストアド プロシージャおよびユーザー定義関数を実行するために Db2 を構成する (オプション)」を参照してください

プロシージャー

汎用プログラミングインターフェース情報の開始。ストアード・プロシージャーを作成するには、以下の手順に従ってください

作成するストアード・プロシージャーのタイプに関するプロセスを実行し、CREATE PROCEDURE ステートメントを発行して、ストアード・プロシージャーをデータベース・サーバーに登録します。
以下のタイプのストアード・プロシージャ―を作成できます。
ネイティブ SQL プロシージャー
プロシージャーは、本体全体が SQL ステートメントで記述されています。この本体は、SQL プロシージャー型言語 (SQL PL) で作成されています。 プロシージャー本体は、プロシージャーのさまざまな属性とともに、プロシージャーの定義に含まれ、指定されます。 ネイティブ SQL プロシージャー用のパッケージが生成されます。 制御文を含む手続き本体が含まれています。 また、 Db2 によって生成されたステートメントが含まれる場合もあります。 このプロシージャーが呼び出されるたびに、パッケージは 1 回以上実行されます。

CREATE PROCEDURE ステートメントに FENCED オプションまたは EXTERNAL オプションを指定しないで作成される SQL プロシージャーはすべて、ネイティブ SQL プロシージャーです。 ネイティブ SQL プロシージャーでは、より多くの機能がサポートされていますが、通常は外部 SQL プロシージャーよりもパフォーマンスに優れており、関連付けられた C プログラムは生成されません。

詳細については、「ネイティブSQLプロシージャの作成 」を参照してください。

外部ストアード・プロシージャー
プロシージャー本体は、C、C++ 、COBOL、または Java などのプログラミング言語で作成され、SQL ステートメントを含むことができる外部プログラムです。 外部ストアード・プロシージャーのソース・コードは、ストアード・プロシージャーの定義から切り離され、パッケージにバインドされます。 外部実行可能ファイルの名前は、プロシージャー定義の一部として、プロシージャーの各種属性とともに指定されます。 すべてのプログラムは、言語環境プログラムを使用して実行されるように設計する必要があります。 COBOL および C++ のストアード・プロシージャーには、 オブジェクト指向拡張機能を含めることができます。 ストアドプロシージャが呼び出されるたびに、プロシージャ内のロジックが、パッケージが実行されるかどうか、また何回実行されるかを制御します。

詳細は、「外部ストアドプロシージャの作成」 を参照してください。

変更の開始外部 SQL プロシージャー (非推奨)変更の終わり
プロシージャーは、本体全体が SQL ステートメントで記述されています。この本体は、SQL プロシージャー型言語 (SQL PL) で作成されています。 プロシージャーの本体は、プロシージャーの各種属性とともにプロシージャー定義に指定されます。 C プログラムと関連パッケージが外部 SQL プロシージャー用に生成されます。 制御文を含む手続き本体が含まれています。 また、 Db2 によって生成されたステートメントが含まれる場合もあります。この手順が呼び出されるたびに、パッケージは1回または複数回実行されます。

ネイティブ SQL プロシージャーは、より完全にサポートされており、保守が容易であり、通常は非推奨の外部 SQL プロシージャーよりも効率よく実行されます。

詳細については、「外部SQLプロシージャの作成(非推奨 )」を参照してください。

汎用プログラミングインターフェース情報の終了。