TO_NUMBERファンクションは、書式が設定されたTEXTまたはNTEXT式を、数値に変換するファンクションです。このファンクションは通常、通貨記号、小数点、3桁区切りなどを含むアプリケーションで、書式が設定されている数値出力を他のアプリケーションの入力として使用できるように変換するために使用します。
戻り値
NUMBER。書式モデルにMI
、S
またはPR
の書式要素が含まれている場合以外は、負の戻り値の前には負の記号が含まれ、正の値の名前には空白が含まれます。
構文
TO_NUMBER(text-exp, [fmt,] [nlsparams])
引数
変換する数値を含むテキスト式。式には、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-10「端数処理により発生する可能性のある影響」に、端数処理による一部の影響を示します。
例
例8-142 テキスト・データの10進データへの変換
次の文では、各国通貨記号(L
)、3桁区切り(G
)および小数点(D
)を識別することにより、テキスト文字列をDECIMALデータ型に変換します。G
およびD
の書式がセッションの現行の設定とは異なるため、NLS_NUMERIC_CHARACTERSオプションにこれらの書式で使用されている文字を指定します。
DEFINE money VARIABLE DECIMAL money = TO_NUMBER('$94 567,00', 'L999G999D00', NLS_NUMERIC_CHARACTERS ', ') SHOW money
この文によって生成される出力は次のとおりです。
94,567.00