CHAR 関数 CHAR関数により固定長の文字列への変換値が返されます。 CHAR関数
行われる変換は以下のとおりです。
  • 文字列変換 一つ目の引数が文字列である場合です。
  • 日時変換 一つ目の引数が日付、時刻、タイムスタンプである場合です。
  • 小数変換 一つ目の引数が小数である場合です。
  • 倍精度浮動小数点数変換 一つ目の引数がDOUBLEあるいはREALである場合です。
  • 整数変換 一つ目の引数がSMALLINT、INTEGER、BIGINTである場合です。
一つ目の引数は、その型が組込みのデータ型である必要があります。CHAR関数の返り値は固定長の文字列です。一つ目の引数はNULLとすることができ、その場合は返り値はNULLです。一つ目の引数は、その型がXMLであってはなりません。もしXMLの値を固定長のCHARにしたいのなら、SQL/XML直列化演算子のXMLSERIALIZEを使う必要があります。
文字から文字への変換を行う時の書き方 CHAR (文字式 [, ] )
文字式
CHAR、VARCHAR、LONG VARCHAR、CLOBのいずれかのデータ型の値を返す式。
返却される固定長文字列の長さ。値は0から254の間でなければならない。

もし文字式の長さが数よりも小さかった場合、長さが数と等しくなるよう、関数の結果は空白によりつめられます。もし文字式の長さが数より大きかった場合、切捨てが行われます。もし空白以外の文字が切り捨てられ、文字式が長い文字列(LONG VARCHARやCLOB)でなければ、警告が返されます。

整数から文字への変換を行うときの書き方 CHAR (整数式 )
整数式
整数のデータ型(SMALLINT、INTEGER、BIGINT)型の値を返す式

関数の結果は、SQLの整数として渡された引数を文字列で表現したものとなります。結果は引数の数を10進で表すn文字および、もし引数が負数であったなら負の符号から構成されます。また結果は左詰めされています。

  • もし一つ目の引数がSMALLINTなら、結果の文字列の長さは6です。もし結果にて数値の文字数が6に満たない場合は、6文字となるよう右側に空白が詰められます。
  • もし一つ目の引数がINTEGERなら、結果の文字列の長さは11です。もし結果にて数値の文字数が11に満たない場合は、11文字となるよう右側に空白が詰められます。
  • もし一つ目の引数がBIGINTなら、結果の文字列の長さは20です。もし結果にて数値の文字数が20に満たない場合は、20文字となるよう右側に空白が詰められます。
日時から文字への変換を行うときの書き方 CHAR (日時式 )
日時式
式は次のデータ型の何れかです。
  • 日付: 結果は日付を表す文字表現です。結果の長さは10です。
  • 時刻: 結果は時刻を表す文字表現です。結果の長さは8です。
  • タイムスタンプ: 結果はタイムスタンプを表す文字表現です。結果の長さは26です。
小数から文字への変換を行うときの書き方 CHAR (小数式 )
小数式
小数のデータ型を返す式です。もし精度や目盛りの変更を行う場合は、文字への変換を行う前にDECIMALというスカラー関数により変更してください。
浮動小数点数から文字への変換を行うときの書き方 CHAR (浮動小数点数式 )
浮動小数点数式
浮動小数点数のデータ型(DOUBLEやREAL)の値を返す式です。

CHAR関数によりEDLEVEL(smallint型と定義されているとします。)の値を、固定長の文字列として返します。SELECT CHAR(EDLEVEL) FROM EMPLOYEE EDLEVELが18とするなら、その値がCHAR(6)型で'18    'と返されます。(18に空白が4つ続きます。)