数値式、数値型のフォーマット、データベースキャラクタセットへの変換
⇒ 日時式をフォーマットする
- TO_CHAR ( expr [, format [, nls_param]] )
- TO_NCHAR ( expr [, format [, nls_param]] )
return [ string ]
TO_NCHAR 関数は TO_CHAR 関数の戻り値を各国語キャラクタセット NCHAR としたもの
- フォーマット書式に従って変換された文字列、または、データベースキャラクタセット文字列
フォーマット文字列
各国語サポートパラメータ
nls_param の種類 | expr のタイプ | 設定例 |
NLS_NUMERIC_CHARACTERS | 数値式 | NLS 関連パラメータ 参照 |
NLS_CURRENCY |
NLS_ISO_CURRENCY |
NLS_DUAL_CURRENCY |
TO_CHAR(数値) のフォーマット使用例
書式の指定方法により、符号の位置や有無、通貨表示など色々な制御が可能
デフォルトの書式は TM9 でフォーマットされる。
⇒ (数値の詳しい書式へ...)
見やすくするため TO_CHAR の前後をカッコで囲んでいる。
SQL> select num, fmt, '('|| TO_CHAR(num, fmt) ||')' fmt_str from to_char_sample;
NUM FMT FMT_STR
---------- -------------------- --------------------
1 FM9,900 (01)
10.1 FM9,990.00S (10.10+)
1000.055 FM9,999.99 (1,000.06)
0 9,990.00 ( 0.00)
10000 9G999D00 (#########) -- オーバーフローは全桁#で埋まる
9999.99 9G999D00 ( 9,999.99)
TO_CHAR(文字型) 使用例
TO_CHAR( string ) の形式 では文字式 string を「データベースキャラクタセット」に変換する。
入力文字列の データ型 は NCHAR、CLOB、NCLOB。
CONVERT 関数 の NCHAR ⇒ CHAR 特化版みたいなもの。
SQL> select dump(n'あ', 1016) from dual; -- NCHAR = AL16UTF16
DUMP(N'あ',1016)
---------------------------------------------------
Typ=96 Len=2 CharacterSet=AL16UTF16: 30,42
^^^^^^^^^
SQL> select dump(TO_CHAR(n'あ'), 1016) from dual; -- CHAR = SJIS
DUMP(TO_CHAR(N'あ'),1016)
---------------------------------------------------
Typ=1 Len=2 CharacterSet=JA16SJISTILDE: 82,a0
^^^^^^^^^^^^^
n'文字列' は 各国語キャラクタセット NCHAR 型の 文字リテラル をあらわすための表記方法。
SQL 関数 - TO_CHAR 関連