ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

TO_CHAR

TO_CHARファンクションは、DATETIME、数値またはNTEXT式を、指定した書式のTEXT式に変換するファンクションです。このファンクションは通常、出力データの書式の設定に使用されます。

戻り値

TEXT

構文

TO_CHAR(datetime-exp, [datetime-fmt,] [option setting])

または

TO_CHAR(num-exp, [num-fmt,] [nlsparams])

または

TO_CHAR(ntext-exp)

パラメータ

datetime-exp

TEXTに変換されるDATETIME式。

datetime-fmt

日時書式テンプレートを指定するテキスト式。このテンプレートでDATETIMEデータ型からTEXTへの変換方法を指定します。日時書式テンプレートの詳細は、表9-4「日時の書式要素」を参照してください。datetime-fmtのデフォルト値は、NLS_DATE_FORMATオプションによって制御されます。

option setting

現在セッションで有効な設定を一時的に上書きするOLAPオプション(NLS_DATE_LANGUAGEなど)およびその新しい設定。一般に、このオプションにはdatetime-expの翻訳対象の言語を指定します。例8-138「現在日時のスペイン語での表示」を参照してください。

他のオプションを設定するオプションは指定しないでください。たとえば、NLS_DATE_LANGUAGEやNLS_TERRITORYは設定せず、かわりにNLS_DATE_LANGUAGEを設定してください。TO_CHARは、文の実行中にのみ新しい値を保持できるように、指定したオプションの現行の設定を保存およびリストアしますが、そのオプションの変更結果を保存およびリストアできません。たとえば、NLS_TERRITORYは、NLS_DATE_FORMAT、NLS_NUMERIC_CHARACTERS、NLS_CURRENCY、NLS_CALENDARなどの値およびその他のオプションを制御します。TO_CHARに対するコールでNLS_TERRITORYの値を変更した場合、すべてのオプションはそれらの領域に適したデフォルト値に2回リセットされます(1回目はNLS_TERRITORYがTO_CHAR文の実行中にその新しい値に設定されたとき、2回目はNLS_TERRITORYの保存された値がリストアされたとき)。

num-exp

TEXTに変換される数式。

num-fmt

数値の書式モデルを示すテキスト式。このモデルは、数値データ型(NUMBER、INTEGER、SHORTINTEGER、LONGINTEGER、DECIMAL、SHORTDECIMAL)からTEXTへの変換の実行方法を指定します。

数値のデフォルトの書式モデルでは、NLS_NUMERIC_CHARACTERSによって指定される小数点と3桁区切りが使用されます。


関連項目:

『Oracle Database SQL言語リファレンス』の数値書式モデルに関する説明

nlsparams

num-expで使用される3桁区切り、小数点および通貨記号を指定するテキスト式。この式には、次の1つ以上のパラメータを含め、カンマで区切ります。

NLS_CURRENCY symbol 

NLS_ISO_CURRENCY territory 

NLS_NUMERIC_CHARACTERS dg 

symbol

各国通貨記号を指定するテキスト式。11文字以上を指定することはできません。

territory

ISO通貨記号が使用されている地域を示すテキスト式。

dg

小数点(d)および3桁区切り(g)を示す、2つの異なるシングルバイト文字で構成されるテキスト式。

これらのパラメータは、NLS_CURRENCY、NLS_ISO_CURRENCYおよびNLS_NUMERIC_CHARACTERSオプションにより指定されるデフォルト値を上書きします。

ntext-exp

TEXTに変換されるNTEXT式。NTEXTからTEXTへの変換では、NTEXT値がデータベース・キャラクタ・セットで表せない場合、データの損失をまねくことがあります。

使用上の注意

TO_CHARによる数値データ型の処理

TO_CHARファンクションは、INTEGER、SHORTINTEGER、LONGINTEGER、DECIMALおよびSHORTDECIMAL値を、TEXTに変換する前にNUMBERに変換します。このため、TO_CHARはNUMBER値を他の数値データ型より速く変換します。

TO_CHARの端数処理により発生する可能性のある影響

数値のすべての書式モデルにより、数値が指定した有効桁数に端数処理されます。表8-17「端数処理により発生する可能性のある影響」に、端数処理による一部の影響を示します。

表8-17 端数処理により発生する可能性のある影響

num-expの条件 戻り値への影響 

小数桁の左側に、書式で指定された数より多くの有効桁がある場合

番号記号(#)で表示

指定した書式で表示できない非常に大きい正の値である場合

ティルド(~)で表示

指定した書式で表示できない非常に小さい負の値である場合

負の記号とその後に続くティルド(-~)で表示


例8-136 日付のCHARへの変換

次の文では、今日の日付を変換し、書式を指定します。

SHOW TO_CHAR(SYSDATE, 'Month DD, YYYY HH24:MI:SS')

指定した日付書式に従った日付と時刻が表示されます。

November  30, 2000 10:01:29

例8-137 数値のテキストへの変換

この文では、数値をテキストに変換し、小数点として空白を、3桁区切りとしてピリオドを指定します。

SHOW TO_CHAR(1013.50, NA, NLS_NUMERIC_CHARACTERS ' .')

この結果、値1013.50は、次のように表示されます。

1.013 50

例8-138 現在日時のスペイン語での表示

次の文では、デフォルトの言語をスペイン語に設定し、新しい日付書式を指定します。

NLS_DATE_LANGUAGE = 'spanish'
NLS_DATE_FORMAT = 'Day: Month dd, yyyy HH:MI:SS am'

次の文により、現在の日付と時刻がスペイン語で表示されます。

SHOW TO_CHAR(SYSDATE)
Viernes  : Diciembre  01, 2000 08:21:17 AM

NLS_DATE_LANGUAGEオプションは、文の実行中に言語を変更します。次の文により、日付と時刻がドイツ語で表示されます。

SHOW TO_CHAR(SYSDATE, NA, NLS_DATE_LANGUAGE 'german')
Freitag   : Dezember  01, 2000 08:26:00 AM