TO_NUMBERファンクションは、書式が設定されたTEXTまたはNTEXT式を、数値に変換するファンクションです。このファンクションは通常、通貨記号、小数点、3桁区切りなどを含むアプリケーションで、書式が設定されている数値出力を他のアプリケーションの入力として使用できるように変換するために使用します。
パラメータ
変換する数値を含むテキスト式。式には、TEXTまたはNTEXTデータ型を使用できます。NTEXT値を数値として解釈できない場合は、NTEXTからの変換は不適切な結果となります。
数値の書式モデルを示すテキスト式。このモデルは、NUMBERへの変換の実行方法を指定します。
関連項目: 『Oracle Database SQL言語リファレンス』の数値書式モデルに関する説明 |
デフォルトの数値書式では、ピリオド(.
)が小数点として識別され、他の記号は認識されません。
text-expで使用される3桁区切り、小数点および通貨記号を指定するテキスト式。この式には、次の1つ以上のパラメータを含め、カンマで区切ります。
NLS_CURRENCY symbol
NLS_ISO_CURRENCY territory
NLS_NUMERIC_CHARACTERS dg
各国通貨記号を指定するテキスト式。11文字以上を指定することはできません。
ISO通貨記号が使用されている地域を示すテキスト式。
小数点(d
)および3桁区切り(g
)を示す、2つの異なるシングルバイト文字で構成されるテキスト式。
これらのパラメータは、NLS_CURRENCY、NLS_ISO_CURRENCYおよびNLS_NUMERIC_CHARACTERSオプションにより指定されるデフォルト値を上書きします。追加情報は、NLSオプションの項を参照してください。
使用上の注意
デフォルトの数値書式値
一部の書式の値は、NLS_TERRITORYの値によって決定されます
TO_NUMBERの端数処理により発生する可能性のある影響
数値のすべての書式モデルにより、数値が指定した有効桁数に端数処理されます。表8-17「端数処理により発生する可能性のある影響」に、端数処理による一部の影響を示します。
例
例8-144 テキスト・データの10進データへの変換
次の文で、テキスト文字列が現在の数値の書式(米語)のDECIMALデータ型に変換されます。text-expパラメータは、欧語の書式のテキスト文字列です。fmtパラメータは、現地の通貨記号(L
)、3桁区切り文字(G
)および小数点記号(D
)を表します。text-expパラメータのG
およびD
の書式がセッションの現行の設定とは異なるため、NLS_NUMERIC_CHARACTERSオプションにこれらの書式で使用されている文字を指定します。text_expのD
はカンマで、G
はスペースです。
DEFINE money VARIABLE DECIMAL money = TO_NUMBER('$94 567,00', 'L999G999D00', NLS_NUMERIC_CHARACTERS ', ') SHOW money
この文によって生成される出力は次のとおりです。
94,567.00