SQL 解説書
SET PATH ステートメントは、CURRENT PATH 特殊レジスターの値を変更します。
このステートメントは、トランザクションの制御下にはありません。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、
あるいは対話式に発行することができます。
このステートメントは、動的に準備可能な実行可能ステートメントです。
許可
このステートメントの実行には、特に権限は必要ありません。
構文
.-FUNCTION-.
.-CURRENT--+----------+---. .-=-.
>>-SET--+-------------------------+---PATH---+---+-------------->
.-,-----------------------------------.
V |
>-------+-schema-name--------------------+--+------------------><
+-SYSTEM PATH--------------------+
+-USER---------------------------+
| .-FUNCTION--. |
+-CURRENT--+-----------+---PATH--+
+-host-variable------------------+
'-string-constant----------------'
説明
- schema-name
- これは、1 つの部分だけからなる名前で、
アプリケーション・サーバーに存在するスキーマを指定します。
そのスキーマの存否の検査は、パス設定時には行われません。
schema-name (スキーマ名) が間違っていると、
取り込むことができず、以降の SQL 操作に影響を及ぼします。
- SYSTEM PATH
- この値の指定は、スキーマ名として "SYSIBM"、
"SYSFUN" を指定したのと同じことになります。
- USER
- USER 特殊レジスターの値。
- CURRENT PATH
- このステートメントを実行する前の CURRENT PATH の値。
CURRENT FUNCTION PATH も指定できます。
- host-variable
- CHAR または VARCHAR のタイプの変数です。
host-variable の内容の長さは、30 バイトを超えてはなりません (SQLSTATE 42815)。
NULL に設定することはできません。
host-variable が標識変数を伴っている場合、
その標識変数の値は NULL 値以外でなければなりません (SQLSTATE 42815)。
host-variable の文字は左寄せされていなければなりません。
host-variable にスキーマ名 を指定する場合は、
英大文字への変換はなされないので、
すべての文字を大文字小文字の区別も含めて正確に指定する必要があります。
- string-constant
- 8 文字を超えない文字ストリング定数。
規則
- 関数パスの中に 1 つのスキーマ名を 2 回以上指定することはできません (SQLSTATE 42732)。
- 指定できるスキーマの数は、CURRENT PATH 特殊レジスターの合計長によって限定されます。
特殊レジスターのストリングは、指定した各スキーマの名前から後続ブランクを除き、
二重引用符で区切り、必要に応じてスキーマ名の中で使われている引用符を反復させ、
スキーマ名をコンマで区切ったものになります。
結果のストリングの長さが 254 バイトを超えてはなりません (SQLSTATE 42907)。
注
- CURRENT PATH 特殊レジスターの初期値は、
"SYSIBM"、"SYSFUN"、"X" です (X は USER 特殊レジスターの値)。
- SYSIBM スキーマを指定する必要はありません。
それが SQL パスに含まれていない場合、
暗黙のうちに最初のスキーマであるとみなされます (この場合 CURRENT PATH 特殊レジスターには入れられません)。
- CURRENT PATH 特殊レジスターは、動的 SQL ステートメント内のユーザー定義データ・タイプ、
プロシージャー、および関数を解決するために使用する SQL パスを指定します。
動的 SQL ステートメント内のユーザー定義データ・タイプおよび関数の解決に使用する SQL パスは、
FUNCPATH バインド・オプションによって指定されます。
BIND コマンドの FUNCPATH オプションの使用に関する詳細は、コマンド解説書 を参照してください。
例
例 1:
以下のステートメントは、CURRENT FUNCTION PATH 特殊レジスターを設定します。
SET PATH = FERMAT, "McDrw #8", SYSIBM
例 2:
以下の例では、
CURRENT PATH 特殊レジスターの現行値を検索して CURPATH という名前のホスト変数に入れます。
EXEC SQL VALUES (CURRENT PATH) INTO :CURPATH;
例 1 での設定を使った場合、値は "FERMAT","McDrw #8","SYSIBM" になります。
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]