SET CURRENT PACKAGESET ステートメント
SET CURRENT PACKAGESET ステートメントは、 それ以降の SQL ステートメントで使用するパッケージの選択に使用されるスキーマ名 (コレクション ID) を設定します。
このステートメントは、トランザクションの制御下にありません。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込む方法のみ可能です。 これは、動的に作成できない実行可能ステートメントです。 このステートメントは REXX ではサポートされません。
許可
必要ありません。
構文
説明
- 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 回バインドされます。
以下のコマンド行プロセッサーのコマンドが使用されました。
これにより、TRYIT というパッケージが 2 つ作成されます。最初の BIND コマンドでは、"PRODUSA" というスキーマにパッケージが作成されます。2 番目 BIND コマンドでは、COLLECTION オプションに基づいて "PRODEUR" というスキーマにパッケージが作成されます。CONNECT TO SAMPLE USER PRODUSA BIND TRYIT.BND DATETIME USA CONNECT TO SAMPLE USER PRODEUR BIND TRYIT.BND DATETIME EUR 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 形式で戻されます。
