COLLATION_KEY スカラー関数
COLLATION_KEY 関数は、指定された照合内の引数の照合キーを表す可変長バイナリー・ストリングを戻します。
スキーマは SYSIBM です。
- 文字列式
- 照合キーを判別するための、LOB 以外の文字ストリングまたはグラフィック・ストリングを戻す式。 string-expression が文字ストリングの場合、FOR BIT DATA であってはなりません。 string-expression が Unicode UTF-16 (CCSID 1200) でない場合は、Unicode UTF-16 に変換してから、対応する照合キーを取得します。 string-expression の長さは、UTF-16 表現の 32704 バイトを超えてはなりません。
- 照合名
- バイナリー・ストリング、CLOB、または DBCLOB ではないストリング定数またはストリング・ホスト変数。 collation-name は、照合キーを決定するときに使用する照合を指定します。 collation-name が EBCDIC 値でない場合は、EBCDIC に変換されます。 照合名の長さは、EBCDIC 表現で 1~255 バイトの範囲でなければなりません。 collation-name の値は、大/小文字の区別がなく、領域 CUN4BOPR 内でパラメーター CUNBOPRM_Collation_Keyword に対して左寄せされた有効な「短パス」照合設定でなければなりません。 パラメータCUNBOPRM_Collation_Keywordの「ショートパス」設定の詳細については、 CUNBOPRM領域のパラメータの説明を参照してください。
ホスト変数の値は NULL であってはなりません。 ホスト変数に標識変数がある場合、その標識変数の値は NULL 値を示すものであってはなりません。 collation-name は、ホスト変数内で左寄せする必要があります。 また、長さがホスト変数の長さより短く、ホスト変数が固定長 CHAR または GRAPHIC データ・タイプの場合には、右側にブランクを埋め込む必要があります。
collation-name は、CUN4BOPR_Collation_Keyword 指定の形式です。 z/OS® CUNBOPR_Collation_Keyword パラメータに許容される値を指定する必要があります。
下の表は、サポートされる値の一部のものをリストしています。表 1. Collation キーワード参照 属性名 キー 戻される値 ロケール L.R.V < ロケール> 強さ S 1、2、3、4、I、D Case_Level K X、O、D Case_First C X、L、U、D 代替 A N、S、D Variable_Top T < 16 進数字> 正規化 N X、O、D フランス語 F X、O、D Hinayana H X、O、D 次の表に、照合キーワードの省略形を示します。- 省略語
- 定義
- D
- デフォルト
- O
- on
- X
- オフ
- 1
- primary
- 2
- 2 次
- 3
- 3 次
- 4
- 4 次
- I
- 同一
- S
- シフト
- N
- 無視不可
- L
- 小文字優先
- U
- 大文字優先
UCA バージョン 4.0.1、スペース、句読点、および記号を無視、スウェーデン語の規則を使用、大文字優先使用、大/小文字の区別をして比較。'UCA400R1_AS_LSV_S3_CU'
UCA バージョン 4.0.1。スペース、句読点、および記号を無視しない。スウェーデン語の規則を使用。小文字優先使用 (または、設定しない。ほとんどの地域では小文字がデフォルトとして使用されるため、これを設定しなくても同じ意味になります)。正規化 ON。大/小文字の区別をして比較。'UCA400R1_AN_LSV_S3_CL_NO' - 整数
- 結果の長さ属性を指定する整数値。 指定する場合は、値は1~32704の範囲の整数定数でなければなりません。長さを指定しない場合、結果の長さ属性は、次のように決められます。
文字列式 結果の長さ属性 CHAR(n) または VARCHAR(n) MIN (VARB INARY(12n ), 32704) GRAPHIC(n) または VARGRAPHIC(n) MIN (VARB INARY(12n ), 32704) 長さを指定するかどうかに関係なく、照合キーの長さは、結果の長さ属性以下でなければなりません。 照合キーの結果の実際の長さは、string-expression の約 6 倍になります (string-expression の長さは Unicode バイト表現)。 特定の collation-name (例えば、UCA410_LKO_RKR (韓国語の照合)) では、結果のデフォルトの長さ属性 (12n) では大きさが不十分なことがあり、その場合はエラーが戻されます。 こうしたエラーを避けるために、結果の長さ属性は、より大きい定数を明示的に指定する必要があります。 結果の適切な長さ属性については、Collation Servicesのターゲットバッファ長の考慮事項に関する情報を、エリアCUNBOPRMのパラメータの説明を参照してください。
結果は NULL になる可能性があります。第 1 引数が NULL の場合、結果は NULL 値となります。
COLLATION_KEY関数は、 z/OS のUnicode照合サービスを使用して照合キーを返します。 サポートされている照合バージョンのリストについては、「照合にサポートされているロケール」を参照してください。
COLLATION_KEY関数が実行された際にUnicode照合サービスが利用できない場合、エラーが返されます。
SELECT FIRSTNAME, LASTNAME
FROM DSN8D10.EMP
ORDER BY COLLATION_KEY(LASTNAME, 'UCA400R1_AS_LSV_S2'); SELECT E.WORKDEPT
FROM EMPLOYEE AS E INNER JOIN SALES AS S
ON COLLATION_KEY(E.LASTNAME, 'UCA400R1_LFR_RCA') =
COLLATION_KEY(S.SALES_PERSON, 'UCA400R1_LFR_RCA')
WHERE S.REGION = 'Quebec'; CREATE INDEX EMPLOYEE_NAME_SORT_KEY
ON EMPLOYEE (COLLATION_KEY(LASTNAME, 'UCA410_LDE', 600),
COLLATION_KEY(FIRSTNAME, 'UCA410_LDE', 600),
ID);