TO_NUMBER
構文
目的
TO_NUMBERは、exprを、NUMBERデータ型の値に変換します。
                  
exprは、CHAR、VARCHAR2、NCHARまたはNVARCHAR2の型の文字列、NUMBER、BINARY_FLOATまたはBINARY_DOUBLEの型の数値、あるいはNULLと評価される任意の式にすることができます。exprがNUMBERの場合、このファンクションはexprを戻します。exprがNULLと評価されると、関数はNULLを返します。それ以外の場合は、exprがNUMBER値に変換されます。
                  
- 
                        
CHAR、VARCHAR2、NCHARまたはNVARCHAR2データ型のexprを指定した場合、オプションの書式モデルfmtを指定できます。 - 
                        
BINARY_FLOATまたはBINARY_DOUBLEのデータ型のexprを指定した場合、書式モデルを指定できません。これは、その内部表現によってのみ浮動小数点数を解釈できるためです。 
数値書式の詳細は、「書式モデル」を参照してください。
このファンクションの'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
