UPPER (ロケール依存) スカラー関数
UPPER 関数は、指定したロケールに関連付けられた規則を使用して、すべての文字が大文字に変換されたストリングを戻します。
スキーマは SYSIBM です。
- string-expression
- CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC ストリングを戻す式。 string-expression が CHAR または VARCHAR の場合、この式は FOR BIT DATA であってはなりません (SQLSTATE 42815)。
- locale-name
- 大文字への変換の規則を定義する、ロケールを指定する文字定数。locale-name の値は大/小文字の区別がなく、有効なロケールでなければなりません (SQLSTATE 42815)。有効なロケールとその命名については、『SQL および XQuery のロケール名』を参照してください。
- code-units
- 結果内のコード単位の数を指定する>整数定数。
指定した場合、code-units は以下の範囲の整数でなければなりません。
- 結果のストリング単位が OCTETS である場合は 1 から 32 672
- 結果のストリング単位が 2 バイトまたは CODEUNITS16 である場合は 1 から 16 336
- 結果のストリング単位が CODEUNITS32 である場合は 1 から 8 168
- CODEUNITS16、CODEUNITS32、または OCTETS
- code-units のストリング単位を指定します。
CODEUNITS16 は、code-units が 16 ビット UTF-16 コード単位で表現されることを指定します。CODEUNITS32 は、code-units が 32 ビット UTF-32 コード単位で表現されることを指定します。OCTETS は、code-units がバイト単位で表現されることを指定します。
ストリング単位が明示的に指定されなければ、string-expression のストリング単位によって、使用される単位が決定されます。 CODEUNITS16、CODEUNITS32、および OCTETS の詳細については、『文字ストリング』の『組み込み関数のストリング単位』を参照してください。
関数の結果は、string-expression が CHAR または VARCHAR の場合は VARCHAR になり、string-expression が GRAPHIC または VARGRAPHIC の場合は VARGRAPHIC になります。結果のストリング単位は、string-expression のストリング単位と同じになります。
結果の長さ属性は、以下の表に示すように、code-units の暗黙的または明示的な値、暗黙的または明示的なストリング単位、結果のデータ・タイプ、および結果のストリング単位によって決まります。
| 結果のデータ・タイプとストリング単位 | CODEUNITS16 単位の code-units の長さ属性 | CODEUNITS32 単位の code-units の長さ属性 | OCTETS 単位の code-units の長さ属性 |
|---|---|---|---|
| OCTETS 単位の VARCHAR | MIN(code-units * 3, 32672) | MIN(code-units * 4, 32672) | code-units |
| CODEUNITS32 単位の VARCHAR | MIN(code-units / 2, 8168) | MIN(code-units, 8168) | MIN(code-units / 4, 8168) |
| CODEUNITS16 または 2 バイト単位の VARGRAPHIC | code-units | MIN(code-units * 2, 16336) | MIN(code-units / 2, 16336) |
| CODEUNITS32 単位の VARGRAPHIC | MIN(code-units / 2, 8168) | MIN(code-units, 8168) | MIN(code-units / 4, 8168) |
結果の実際の長さは、string-expression の長さより大きくなる場合があります。結果の実際の長さが結果の長さ属性より大きい場合は、エラーが返されます (SQLSTATE 42815)。結果内のコード単位の数が code-units の値を超えた場合は、エラーが返されます (SQLSTATE 42815)。
string-expression が UTF-16 ではない場合、この関数は string-expression の UTF-16 へのコード・ページ変換を実行し、次いで結果を UTF-16 から string-expression のコード・ページに変換します。 どちらかのコード・ページ変換の結果として最低 1 つの置換文字が生じた場合、結果には置換文字が含まれることになり、警告が返されて (SQLSTATE 01517)、SQLCA の警告フラグ SQLWARN8 が「W」に設定されます。
最初の引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 最初の引数が NULL であれば、結果は NULL 値になります。
例
- 例 1: EMPLOYEE 表の列 JOB の値で使用されている文字を大文字で返すようにします。
結果は、値 'MANAGER' になります。SELECT UPPER(JOB, 'en_US') FROM EMPLOYEE WHERE EMPNO = '000020' - 例 2: トルコ語のストリング内のすべての「I」文字について大文字を検索します。
結果は、ストリング 'IİIİ' になります。VALUES UPPER('Iİıi', 'tr_TR', CODEUNITS16) - 例 3: ドイツ語の「ß」(鋭い S) の大文字形式を検出します。
結果は、ストリング 'SS' になります。この例では code-units を指定しなければならないことに注意してください。結果に含まれるコード単位のほうが、string-expression に含まれるものよりも多いためです。VALUES UPPER('ß', 'de', 2, CODEUNITS16)
