数値式、数値型のフォーマット、データベースキャラクタセットへの変換

日時式をフォーマットする

syntax

TO_CHAR ( expr [, format [, nls_param]] )
TO_NCHAR ( expr [, format [, nls_param]] )
return [ string ]

TO_NCHAR 関数は TO_CHAR 関数の戻り値を各国語キャラクタセット NCHAR としたもの

parameter

expr数値式、文字列式
formatフォーマット文字列
nls_param各国語サポートパラメータ

return

  • フォーマット書式に従って変換された文字列、または、データベースキャラクタセット文字列

avail

  • SQL および PL/SQL の両方で使用可能。

フォーマット文字列

各国語サポートパラメータ

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 ) の形式 Oracle 9i では文字式 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 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)