SET CURRENT PACKAGESET ステートメント

SET CURRENT PACKAGESET ステートメントは、 それ以降の SQL ステートメントで使用するパッケージの選択に使用されるスキーマ名 (コレクション ID) を設定します。

このステートメントは、トランザクションの制御下にありません。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込む方法のみ可能です。 これは、動的に作成できない実行可能ステートメントです。 このステートメントは REXX ではサポートされません。

許可

必要ありません。

構文

構文図を読む構文図をスキップするSETCURRENT PACKAGESET=string-constanthost-variable

説明

string-constant
文字ストリング定数です。 値が 128 バイトを超える場合は、先頭の 128 バイトだけが使用されます。
host-variable
タイプ CHAR または VARCHAR の変数です。 NULL に設定することはできません。値が 128 バイトを超える場合は、先頭の 128 バイトだけが使用されます。

  • このステートメントを使用して、アプリケーションは、 実行可能な SQL ステートメントのパッケージを選択する際に使用するスキーマ名を指定することができます。 このステートメントは、クライアントで処理され、アプリケーション・サーバーへの流れはありません。
  • COLLECTION BIND オプションを使用して、指定したスキーマ名を伴うパッケージを作成できます。
  • SET CURRENT PACKAGESET ステートメントは、CURRENT PACKAGESET という特殊レジスターのサポートなしでインプリメントされています。

  • 例 1: TRYIT というアプリケーションがユーザー ID PRODUSA によってプリコンパイルされ、バインド・ファイルのデフォルトのスキーマ名は "PRODUSA" になっていると想定します。 その後、このアプリケーションは、 異なる BIND オプションを使用して 2 回バインドされます。 以下のコマンド行プロセッサーのコマンドが使用されました。
       CONNECT TO SAMPLE USER PRODUSA
       BIND TRYIT.BND DATETIME USA
       CONNECT TO SAMPLE USER PRODEUR
       BIND TRYIT.BND DATETIME EUR COLLECTION 'PRODEUR'
    これにより、TRYIT というパッケージが 2 つ作成されます。最初の BIND コマンドでは、"PRODUSA" というスキーマにパッケージが作成されます。2 番目 BIND コマンドでは、COLLECTION オプションに基づいて "PRODEUR" というスキーマにパッケージが作成されます。
  • 例 2: ここで、アプリケーション TRYIT に、次のステートメントが含まれていると想定します。
       EXEC SQL CONNECT TO SAMPLE;
       .
       .
       EXEC SQL SELECT HIREDATE INTO :HD FROM EMPLOYEE WHERE EMPNO='000010'; 1
       .
       .
       EXEC SQL SET CURRENT PACKAGESET 'PRODEUR';                            2
       .
       .
       EXEC SQL SELECT HIREDATE INTO :HD FROM EMPLOYEE WHERE EMPNO='000010'; 3
    1
    このステートメントは、 アプリケーションのデフォルトのパッケージである PRODUSA.TRYIT パッケージを使って実行されます。 日付は、USA 形式で戻されます。
    2
    このステートメントは、パッケージ選択のスキーマ名を "PRODEUR" に設定します。
    3
    SET CURRENT PACKAGESET ステートメントの結果として、 このステートメントは PRODEUR.TRYIT パッケージを使用して実行されます。 日付は、EUR 形式で戻されます。