日本語PDF

TO_NUMBER

構文

目的

TO_NUMBERは、exprを、NUMBERデータ型の値に変換します。

exprは、CHARVARCHAR2NCHARまたはNVARCHAR2の型の文字列、NUMBERBINARY_FLOATまたはBINARY_DOUBLEの型の数値、あるいはNULLと評価される任意の式にすることができます。exprNUMBERの場合、このファンクションはexprを戻します。exprがNULLと評価されると、関数はNULLを返します。それ以外の場合は、exprNUMBER値に変換されます。

  • CHARVARCHAR2NCHARまたは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