CURRENT PATH 特殊レジスターには、 SQL パス を指定する VARCHAR(254) の値が入れられます。 これは、動的に作成される SQL ステートメントでの関数参照およびデータ・タイプ参照を解決するために使用されるものです。 22 CURRENT PATH は、 CALL ステートメントのストアード・プロシージャー参照を解決するのにも使用されます。 初期値は、後述するデフォルト値です。 静的 SQL の場合は、FUNCPATH バインド・オプションで 関数およびデータ・タイプの解決のための SQL パスを指定できます (FUNCPATH バインド・オプションについては、 コマンド解説書 を参照)。
CURRENT PATH 特殊レジスターの内容は、 1 つ以上のスキーマ名をコンマで囲んだリストを二重引用符で囲んだものです (ストリング内で引用符を表現するときは、 区切り識別子の場合と同様に引用符を繰り返します)。
たとえば、データベース・マネージャーが最初に FERMAT スキーマで、 次に XGRAPHIC スキーマで、 その後 SYSIBM スキーマで参照するように指定する SQL パスは、 CURRENT PATH 特殊レジスターに以下のように返されます。
"FERMAT","XGRAPHIC","SYSIBM"
デフォルト値は "SYSIBM"、"SYSFUN"、X です。ただし、 この X は USER 特殊レジスターの値を二重引用符で囲んだものです。
その値は SET CURRENT FUNCTION PATH ステートメントによって変更することができます (SET PATH を参照してください)。 SYSIBM スキーマを指定する必要はありません。 SQL パスにそれが含まれていない場合は、1 番目のスキーマであるとみなされます。 暗黙のうちに SYSIBM が想定されている場合、254 文字の中には入りません。
SQL パスを使って関数を解決することについては、 関数を参照してください。 スキーマ名で修飾されていないデータ・タイプは、SQL パスのスキーマ名で、 修飾子なしの同じ名前が指定されたデータ・タイプのうち最も早く出現するものによって、 暗黙のうちに修飾されます。 この規則には、CREATE DISTINCT TYPE、CREATE FUNCTION、COMMENT ON、 および DROP ステートメントの部分で説明されているように例外があります。
以下の例は、SYSCAT.VIEWS カタログ視点を使用して、 CURRENT PATH 特殊レジスターの現行値と同じ設定で作成されたすべての視点を検索しています。
SELECT VIEWNAME, VIEWSCHEMA FROM SYSCAT.VIEWS WHERE FUNC_PATH = CURRENT PATH