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
