ASSOCIATE LOCATORS ステートメントは、 ストアード・プロシージャーから戻される結果セットごとの結果セット・ロケーター値を入手します。
構文
.-RESULT SET--. >>-ASSOCIATE--+-------------+---+-LOCATOR--+--------------------> '-LOCATORS-' .-,----------------------. V | >----(-----rs-locator-variable---+---)--WITH PROCEDURE--procedure-name-> >--------------------------------------------------------------><
説明
完全修飾のプロシージャー名は、2 つの部分からなる名前です。 最初の部分は、ストアード・プロシージャーのスキーマ名を含んでいる識別子です。 最後の部分は、ストアード・プロシージャーの名前を含んでいる識別子です。 それぞれの部分の間はピリオドで区切らなければなりません。 それらの部分の一部またはすべてを区切り修飾子にできます。
プロシージャー名が非修飾の場合、 暗黙的なスキーマ名が修飾子としてプロシージャー名に追加されることはないので、 プロシージャー名に含まれる名前は 1 つだけです。 ASSOCIATE LOCATOR ステートメントを正常に実行するのに必要なことは、 ステートメント内の非修飾のプロシージャー名を、先回実行した CALL ステートメント (ただし、 非修飾のプロシージャー名を使用するように指定したもの) でのプロシージャー名と同じにすることだけです。 その CALL ステートメントでの非修飾の名前の暗黙的なスキーマ名は、マッチングにおいて考慮されません。 プロシージャー名を指定する際に従わなければならない規則について、以下で説明します。
ASSOCIATE LOCATORS ステートメントを実行する場合、プロシージャーの名前または指定で、 CALL ステートメントを使用して要求側がすでに呼び出しているストアード・プロシージャーを識別しなければなりません。 ASSOCIATE LOCATORS ステートメントのプロシージャー名は、 CALL ステートメントで指定したのと同じ方法で指定しなければなりません。 たとえば CALL ステートメントで 2 つの部分からなる名前を指定した場合、 ASSOCIATE LOCATORS ステートメントでも 2 つの部分からなる名前を使用しなければなりません。
規則
例
以下の例のステートメントは、SQL プロシージャーに組み込まれることを想定しています。
例 1: 結果セット・ロケーター変数 LOC1 および LOC2 を使用して、 ストアード・プロシージャー P1 から戻される 2 つの結果セットの結果セット・ロケーター値を入手します。 ストアード・プロシージャーが 1 つの部分だけからなる名前で呼び出されることを想定しています。
CALL P1; ASSOCIATE RESULT SET LOCATORS (LOC1, LOC2) WITH PROCEDURE P1;
例 2: 例 1 のシナリオを繰り返しますが、 スキーマ MYSCHEMA で確実にストアード・プロシージャー P1 が使用されるように、 2 つの部分からなる名前を使用し、ストアード・プロシージャーの明示的なスキーマ名を指定します。
CALL MYSCHEMA.P1; ASSOCIATE RESULT SET LOCATORS (LOC1, LOC2) WITH PROCEDURE MYSCHEMA.P1;