LOWER (ロケール依存) スカラー関数

LOWER 関数は、指定したロケールに関連付けられた規則を使用して、すべての文字が小文字に変換されたストリングを戻します。

Read syntax diagramSkip visual syntax diagramLOWER(string-expression ,locale-name ,code-units ,CODEUNITS16CODEUNITS32OCTETS )

スキーマは SYSIBM です。

ストリング式
組み込みの文字ストリング、 、ブール値、またはグラフィック・ストリングを戻す式。 この式が文字ストリングを返す場合、この式は FOR BIT DATA を指定できません (SQLSTATE 42815)。
ロケール名
小文字への変換の規則を定義する、ロケールを指定する文字定数。 値は大/小文字の区別がなく、有効なロケールでなければなりません (SQLSTATE 42815)。 有効なロケールとその命名については、SQL および XQuery のロケール名を参照してください。
重要: ロケール名として UNI_SIMPLE を渡すと、単純な大/小文字変換マッピングを使用できるようになります。
コード単位
結果内のコード単位の数を指定する>整数定数。 指定した場合、次の範囲の整数でなければなりません。
  • 結果のストリング単位が OCTETS である場合は 1 から 32672
  • 結果のストリング単位が 2 バイトまたは CODEUNITS16 である場合は 1 から 16336
  • 結果のストリング単位が CODEUNITS32 である場合は 1 から 8168
これ以外の場合には、エラーになります (SQLSTATE 42815)。 デフォルトは string-expression の長さ属性です。
code-units に指定できる値は、使用されるストリング単位に応じて異なります。
  • ストリング式にストリング単位 OCTETS が指定され、結果がグラフィック・データである場合、値は偶数でなければなりません (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 の暗黙的または明示的な値、暗黙的または明示的なストリング単位、結果のデータ・タイプ、および結果のストリング単位によって決まります。

表 1. ストリング単位および結果タイプの関数としての、LOWER の結果の長さ属性
結果のデータ・タイプとストリング単位 CODEUNITS16 の code-units の長さ属性 CODEUNITS32 の code-units の長さ属性 OCTETS 単位の code-units の長さ属性
OCTETS 単位の VARCHAR MIN (コード単位 * 3、32672) MIN (コード単位 * 4、32672) コード単位
CODEUNITS32 単位の VARCHAR MIN (コード単位 /2、8168) MIN (コード単位、8168) MIN (コード単位 /4、8168)
CODEUNITS16 または 2 バイト単位の VARGRAPHIC コード単位 MIN (コード単位 * 2、16336) MIN (コード単位 /2、16336)
CODEUNITS32 単位の VARGRAPHIC MIN (コード単位 /2、8168) MIN (コード単位、8168) MIN (コード単位 /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 の値の文字が小文字で戻されることを確認します。
       SELECT LOWER(JOB, 'en_US')
         FROM EMPLOYEE
         WHERE EMPNO = '000020'
    結果は、値 'manager' になります。
  • 例 2: トルコ語のストリング内のすべての「I」文字について小文字を検索します。
       VALUES LOWER('Iİıi', 'tr_TR', CODEUNITS16)
    結果は、ストリング 'ıiıi' になります。