CHAR

CHAR 関数は、固定長文字ストリング表現を返します。

整数から文字

構文図を読む構文図をスキップする
>>-CHAR--(--integer-expression--)------------------------------><

10 進数から文字

構文図を読む構文図をスキップする
>>-CHAR--(--decimal-expression--+----------------------+--)----><
                                '-,--decimal-character-'      

浮動小数点数から文字に

構文図を読む構文図をスキップする
>>-CHAR--------------------------------------------------------->

>--(--floating-point-expression--+----------------------+--)---><
                                 '-,--decimal-character-'      

10 進浮動小数点数から文字に

構文図を読む構文図をスキップする
>>-CHAR--------------------------------------------------------->

>--(--decimal-floating-point-expression--+----------------------+--)-><
                                         '-,--decimal-character-'      

文字から文字に

構文図を読む構文図をスキップする
>>-CHAR--(--character-expression--+------------+--)------------><
                                  '-,--integer-'      

グラフィックから文字

構文図を読む構文図をスキップする
>>-CHAR--(--graphic-expression--+------------+--)--------------><
                                '-,--integer-'      

日付/時刻から文字に

構文図を読む構文図をスキップする
>>-CHAR--(--datetime-expression--+--------------+--)-----------><
                                 '-,--+-ISO---+-'      
                                      +-USA---+        
                                      +-EUR---+        
                                      +-JIS---+        
                                      '-LOCAL-'        

CHAR 関数は、次の値の固定長文字ストリング表現を戻します。

  • 整数 (最初の引数が SMALLINT、INTEGER、または BIGINT の場合)
  • 10 進数 (最初の引数が 10 進数の場合)
  • 倍精度浮動小数点数 (最初の引数が DOUBLE または REAL の場合)
  • 最初の引数が DECFLOAT である場合は 10 進浮動小数点数。
  • 文字ストリング (最初の引数が任意のタイプの文字ストリングの場合)
  • グラフィック・ストリング (最初の引数が任意のタイプのグラフィック・ストリングの場合)
  • 日付値 (最初の引数が DATE の場合)
  • 時刻値 (最初の引数が TIME の場合)
  • タイム・スタンプ値 (最初の引数が TIMESTAMP)
  • 行 ID 値 (最初の引数が ROWID の場合)

この関数の結果は、固定長文字ストリングになります。 最初の引数がヌルである可能性がある場合は、結果もヌルになる可能性があります。最初の引数がヌルの場合は、結果は NULL 値になります。

整数から文字に

integer-expression
組み込み整数データ・タイプ (SMALLINT、INTEGER、または BIGINT) の値を戻す式。

結果は、引数を SQL 整数定数の形式で表した固定長 文字ストリング表現です。 結果は、引数の値を表す n 文字の有効数字から成ります。引数が負数の場合は、負符号が前に付きます。 結果は左寄せにされます。

  • 引数が短整数の場合は、

    結果の長さは 6 です。結果の文字数が 6 文字より少ない場合は、結果は右側がブランクで埋め込まれます。

  • 引数が長整数の場合は、

    結果の長さは 11 です。結果の文字数が 11 文字より少ない場合は、結果は右側がブランクで埋め込まれます。

  • 引数が 64 ビット整数の場合は、

    結果の長さは 20 です。結果の文字数が 20 文字より少ない場合は、結果は右側がブランクで埋め込まれます。

ストリングの CCSID は、現行サーバーにおけるデフォルト SBCS CCSID です。

10 進数から文字に

decimal-expression
組み込み 10 進数データ・タイプ (DECIMAL または NUMERIC) の値を戻す式。 精度や位取りを変えたい場合は、DECIMAL スカラー関数を使用して変更することができます。
decimal-character
結果の文字ストリングにおいて、小数点以下を区切るために使用する 1 バイト文字の定数を指定します。 この文字は、ピリオドかコンマとする必要があります。 2 番目の引数を指定しなかった場合は、デフォルトの小数点が使用されます。 詳しくは、小数点を参照してください。

結果は、引数を固定長の文字ストリングで表現したものになります。 この結果には、1 文字の小数点文字と p 桁までの数字が含まれます。 p10 進数式 の精度で、引数が負数の場合は負符号が先頭に付きます。 先行ゼロは戻されません。後続ゼロは戻されます。decimal-expression の位取りがゼロの場合、小数点文字は戻されません。

結果の長さは 2+p です (pdecimal-expression の精度)。 すなわち、正の値には、1 桁の末尾ブランクが常に含まれることになります。

ストリングの CCSID は、現行サーバーにおけるデフォルト SBCS CCSID です。

浮動小数点数から文字に

浮動小数点数式
組み込み浮動小数点データ・タイプ (DOUBLE または REAL) の値を戻す式。
decimal-character
結果の文字ストリングにおいて、小数点以下を区切るために使用する 1 バイト文字の定数を指定します。 この文字は、ピリオドかコンマとする必要があります。 2 番目の引数を指定しなかった場合は、デフォルトの小数点が使用されます。 詳しくは、小数点を参照してください。

結果は、引数を浮動小数点定数の形式で表した固定長文字ストリング表現です。 結果の長さは 24 です。引数が負数の場合は、結果の最初の文字は負符号になります。 負符号でなければ、最初の文字は数字または decimal-character です。引数がゼロであると、結果は 0E0 になります。 それ以外の場合、結果は、ゼロ以外の 1 桁の数字および decimal-character の後に一連の数字で小数部が構成されるように、引数の値を表すために使用できる最小の文字数になります。

結果の文字数が 24 文字より少ない場合は、結果は右側がブランクで埋め込まれます。

ストリングの CCSID は、現行サーバーにおけるデフォルト SBCS CCSID です。

10 進浮動小数点数から文字に

decimal-floating-point expression
組み込みの 10 進浮動小数点データ・タイプ (DECFLOAT) の値を返す式。
decimal-character
結果の文字ストリングにおいて、小数点以下を区切るために使用する 1 バイト文字の定数を指定します。 この文字は、ピリオドかコンマとする必要があります。 2 番目の引数を指定しなかった場合は、デフォルトの小数点が使用されます。 詳しくは、小数点を参照してください。

結果は、引数を 10 進浮動小数点定数の形式で表した固定長文字ストリング表現です。

結果の長さ属性は、42 です。 結果の実際の長さは、記号、数字、および decimal-character を含む、引数の値を表す最小文字数です。 後続ゼロは有効数字です。引数が負数の場合は、結果の最初の文字は負符号になります。負数でなければ、最初の文字は数字または decimal-character です。 引数がゼロであると、結果は 0 になります。

DECFLOAT 値が InfinitysNaN、または NaN の場合、それぞれストリング 'INFINITY'、'SNAN'、および 'NAN' が返されます。特殊値が負の場合、負符号 (-) がそのストリングの最初の文字となります。 DECFLOAT 特殊値 sNaN を使用しても、ストリングへの変換時に例外は発生しません。

結果の文字数が 42 文字より少ない場合、結果は右側がブランクで埋め込まれます。

ストリングの CCSID は、現行サーバーにおけるデフォルト SBCS CCSID です。

文字から文字に

character-expression
組み込み文字ストリング・データ・タイプの値を返す式。1
integer
結果の固定長文字ストリングの長さ属性を指定する整数定数。 値は 1 から 32766 (NULL でもよい場合は、32765) まででなければなりません。 最初の引数が混合データである場合は、2 番目の引数は 4 より小さくてはなりません。

2 番目の引数を指定しない場合は、次のようになります。

  • 文字式 が空ストリング定数の場合は、結果の長さ属性は 1。
  • 空ストリング定数でない場合は、結果の長さ属性は、最初の引数の長さ属性と同じ。

実際の長さは、結果の長さ属性と同じになります。 文字式 の長さが結果の長さより小さい場合は、結果は、結果に指定されている長さまでブランクで埋め込まれます。 文字式 の長さが結果の長さ属性よりも大きい場合は、切り捨てが行われます。 切り捨てられた文字がすべてブランクであった場合以外は、警告 (SQLSTATE 01004) が戻されます。

ストリングの CCSID は、文字式 の CCSID になります。

グラフィックから文字に

graphic-expression
組み込みグラフィック・ストリング・データ・タイプである値を戻す式。
integer
結果の固定長文字ストリングの長さ属性を指定する整数定数。 値は 1 から 32766 (NULL でもよい場合は、32765) まででなければなりません。

2 番目の引数を指定しない場合は、次のようになります。

  • グラフィック式 が空ストリング定数の場合は、結果の長さ属性は 1。
  • 結果が SBCS データの場合、結果の長さは n です。
  • 結果が混合データであれば、結果の長さは (2.5*(n -1)) + 4 になる。

実際の長さは、結果の長さ属性と同じになります。 グラフィック式 の長さが結果の長さより小さい場合は、結果は、結果に指定されている長さまでブランクで埋め込まれます。グラフィック式 の長さが結果の長さ属性よりも大きい場合は、切り捨てが行われます。 切り捨てられた文字がすべてブランクであった場合以外は、警告 (SQLSTATE 01004) が戻されます。

ストリングの CCSID は、現行サーバーのデフォルトの CCSID になります。

日付/時刻から文字に

datetime-expression
次の 3 つの組み込みデータ・タイプのいずれかである式。
日付
結果は、2 番目の引数によって指定された形式の日付の文字ストリング表現です。 2 番目の引数を指定しなかった場合は、デフォルトの日付形式が使用 されます。 形式として ISO、USA、 EUR、または JIS を指定すると、結果の長さは 10 になります。 その他の場合は、結果の長さはデフォルトの日付形式の長さになります。 詳しくは、日付/時刻の値のストリング表記を参照してください。
時刻
結果は、2 番目の引数によって指定された形式の時刻の文字ストリング表現です。 2 番目の引数を指定しなかった場合は、デフォルトの時刻形式が使用されます。 結果の長さは 8 です。詳しくは、日付/時刻の値のストリング表記を参照してください。
timestamp
2 番目の引数は適用されないので、指定してはなりません。

結果は、タイム・スタンプの文字ストリング表現です。datetime-expression が TIMESTAMP(0) である場合、結果の長さは 19 になります。datetime-expression の データ・タイプが TIMESTAMP(n) の場合、結果の長さは 20+n です。それ以外の場合、 結果の長さは 26 です。

ストリングの CCSID は、現行サーバーにおけるデフォルト SBCS CCSID です。
ISO、EUR、USA、または JIS
結果の文字ストリングの日付形式または時刻形式を指定します。 詳しくは、日付/時刻の値のストリング表記を参照してください。
LOCAL
結果の文字ストリングの日付または時刻の形式を、 現行サーバーのジョブの DATFMT、DATSEP、 TIMFMT、および TIMSEP 属性から取る必要があることを指定します。

ストリングの CCSID は、現行サーバーにおけるデフォルト SBCS CCSID です。

注記

代替構文: 最初の引数がストリングで、長さ引数を指定する場合、アプリケーションの移植性を拡張するには、CAST 指定を使用します。 詳しくは、CAST の指定を参照してください。

  • 列 PRSTDATE には、1988-12-25 に相当する内部値が入っていると想定します。 日付形式は *MDY で、日付区切り記号はスラッシュ (/) です。
      SELECT CHAR(PRSTDATE, USA)
        FROM PROJECT
    結果として、‘12/25/1988’ の値が返されます。

      SELECT CHAR(PRSTDATE)
        FROM PROJECT
    結果として、‘12/25/88’ の値が戻されます。
  • 列 STARTING には、17.12.30 に相当する内部値が入っており、ホスト変 数 HOUR_DUR (DECIMAL(6,0)) は、050000 (つまり、5 時間) の値を持つ 時刻期間であると想定します。
      SELECT CHAR(STARTING, USA)
        FROM CL_SCHED
    結果として、‘5:12 PM’の値が戻されます。
      SELECT CHAR(STARTING + :HOUR_DUR, JIS)
        FROM CL_SCHED
    結果として、‘10:12:00’の値が戻されます。
  • 列 RECEIVED (タイム・スタンプ) には、列 PRSTDATE と列 STARTING を合わせた値に相当する内部値が入っていると想定します。
      SELECT CHAR(RECEIVED)
        FROM IN_TRAY
    この結果、‘1988-12-25-17.12.30.000000’の値が返されます。
  • CHAR 関数を使用して、タイプを固定長文字にし、表示桁の長さを EMPLOYEE 表 (VARCHAR(15) と定義) の LASTNAME 列 の 10 文字までに減らすには、次のように指定します。
      SELECT CHAR(LASTNAME,10)
        FROM EMPLOYEE
    LASTNAME を持つ行が 10 文字 (後書きブランクを除く) を超える場合は、値 が切り捨てられるという警告 (SQLSTATE 01004) が出ます。
  • CHAR 関数を使用して、EDLEVEL (SMALLINT と定義) の値を固定長ストリングとして戻します。
      SELECT CHAR(EDLEVEL)
        FROM EMPLOYEE
    EDLEVEL の値が 18 の場合、CHAR(6) では値「18    」(18 の後ろに 4 つのブランクが続く) が返されます。
  • 20000.25 から減算されるのと同じ SALARY がコンマを小数点文字として戻されると想定します。
      SELECT CHAR(20000.25 - SALARY, ',')
        FROM EMPLOYEE
    21150 の SALARY は、値「-1149,75 」(-1149,75 の後に 3 つのブランクを付けたもの) を返します。
  • ホスト変数 DOUBLE_NUM が倍精度浮動小数点データ・タイプで、値が -987.654321E-35 であるとします。
      SELECT CHAR(:DOUBLE_NUM)
        FROM SYSIBM.SYSDUMMY1
    結果は、文字値「-9.8765432100000002E-33 」になります。
1 CCSID が指定されていない場合、または CCSID として 65535 が明示的に指定されている場合、バイナリー・ストリングも使用できます。