LOWER (ロケール依存) スカラー関数
LOWER 関数は、指定したロケールに関連付けられた規則を使用して、すべての文字が小文字に変換されたストリングを戻します。
スキーマは SYSIBM です。
- string-expression
- 組み込みの文字ストリング、ブール値、または GRAPHIC ストリングを返す式。 この式が文字ストリングを返す場合、この式は FOR BIT DATA を指定できません (SQLSTATE 42815)。
- locale-name
- 小文字への変換の規則を定義する、ロケールを指定する文字定数。値は大/小文字の区別がなく、有効なロケールでなければなりません (SQLSTATE 42815)。 有効なロケールとその命名については、『SQL および XQuery のロケール名』を参照してください。
- code-units
- 結果内のコード単位の数を指定する>整数定数。指定した場合、次の範囲の整数でなければなりません。
- 結果のストリング単位が OCTETS である場合は 1 から 32672
- 結果のストリング単位が 2 バイトまたは CODEUNITS16 である場合は 1 から 16336
- 結果のストリング単位が CODEUNITS32 である場合は 1 から 8168
code-units に指定できる値は、使用されるストリング単位に応じて異なります。- ストリング式にストリング単位 OCTETS が指定され、結果が GRAPHIC データである場合、値は偶数でなければなりません (SQLSTATE 428GC)。
- ストリング式にストリング単位 OCTETS が指定され、結果のストリング単位が CODEUNIT32 である場合、値は 4 の倍数でなければなりません (SQLSTATE 428GC)。
- ストリング式にストリング単位 CODEUNITS16 が指定され、結果のストリング単位が CODEUNITS32 である場合、値は 2 の倍数でなければなりません (SQLSTATE 428GC)。
- 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 LOWER(JOB, 'en_US') FROM EMPLOYEE WHERE EMPNO = '000020' - 例 2: トルコ語のストリング内のすべての「I」文字について小文字を検索します。
結果は、ストリング 'ıiıi' になります。VALUES LOWER('Iİıi', 'tr_TR', CODEUNITS16)
