SQL 解説書

ASSOCIATE LOCATORS ステートメント

ASSOCIATE LOCATORS ステートメントは、 ストアード・プロシージャーから戻される結果セットごとの結果セット・ロケーター値を入手します。

構文

              .-RESULT SET--.
>>-ASSOCIATE--+-------------+---+-LOCATOR--+-------------------->
                                '-LOCATORS-'
 
        .-,----------------------.
        V                        |
>----(-----rs-locator-variable---+---)--WITH PROCEDURE--procedure-name->
 
>--------------------------------------------------------------><
 

説明

rs-locator-variable
複合ステートメントで宣言されている結果セット・ロケーター変数を指定します。

WITH PROCEDURE
ここで指定したプロシージャー名で、 結果セット・ロケーターを戻すストアード・プロシージャーを識別します。

procedure-name
プロシージャー名は修飾または非修飾の名前です。 この名前の各部分は SBCS 文字で構成される必要があります。

完全修飾のプロシージャー名は、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;


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]