TO_NUMBER
構文
目的
TO_NUMBER
は、expr
を、NUMBER
データ型の値に変換します。
expr
は、CHAR
、VARCHAR2
、NCHAR
またはNVARCHAR2
の型の文字列、NUMBER
、BINARY_FLOAT
、BINARY_DOUBLE
またはBOOLEAN
の型の数値、あるいはNULLと評価される任意の式にすることができます。expr
がNUMBER
の場合、このファンクションはexpr
を戻します。expr
がNULLと評価されると、ファンクションはNULLを戻します。それ以外の場合、expr
はNUMBER
値に変換されます。
-
CHAR
、VARCHAR2
、NCHAR
またはNVARCHAR2
データ型のexpr
を指定した場合、オプションの書式モデルfmt
を指定できます。 -
BINARY_FLOAT
またはBINARY_DOUBLE
のデータ型のexpr
を指定した場合、書式モデルを指定できません。これは、その内部表現によってのみ浮動小数点数を解釈できるためです。 -
BOOLEAN
型のexpr
を指定した場合、TRUE
は1に変換され、FALSE
は0に変換されます。BOOLEAN
型の入力で書式モデルを指定することはできません。
数値書式の詳細は、「書式モデル」を参照してください。
このファンクションの'nlsparam'
引数は、数値変換のTO_CHAR
ファンクションの場合と同じ用途に使用されます。詳細は、「TO_CHAR(数値)」を参照してください。
このファンクションは、CLOB
データを直接的にサポートしていません。ただし、暗黙的なデータ変換を使用してCLOB
を引数として渡すことはできます。
関連項目:
詳細は、「データ型の比較規則」を参照してください。
例
次の例では、文字列データを数値に変換します。
UPDATE employees SET salary = salary + TO_NUMBER('100.00', '9G999D99') WHERE last_name = 'Perkins';
SELECT TO_NUMBER('-AusDollars100','L9G999D99', ' NLS_NUMERIC_CHARACTERS = '',.'' NLS_CURRENCY = ''AusDollars'' ') "Amount" FROM DUAL; Amount ---------- -100
次の例では、指定した式をNUMBER
値に変換できないため、デフォルト値の0
が戻されます。
SELECT TO_NUMBER('2,00' DEFAULT 0 ON CONVERSION ERROR) "Value" FROM DUAL; Value -------- 0