TO_BINARY_FLOAT
構文
目的
TO_BINARY_FLOAT
は、expr
を単精度浮動小数点数に変換します。
-
expr
は、CHAR
、VARCHAR2
、NCHAR
またはNVARCHAR2
の型の文字列、NUMBER
、BINARY_FLOAT
、BINARY_DOUBLE
またはBOOLEAN
の型の数値、あるいはNULLと評価される任意の式にすることができます。expr
がBINARY_FLOAT
の場合、このファンクションはexpr
を戻します。expr
がNULLと評価されると、ファンクションはNULLを戻します。それ以外の場合、expr
はBINARY_FLOAT
値に変換されます。 -
オプションの
DEFAULT
return_value
ON
CONVERSION
ERROR
句により、expr
からBINARY_FLOAT
への変換中にエラーが発生した場合にこのファンクションで戻される値を指定できます。expr
を評価するときにエラーが発生した場合、この句による影響はありません。return_value
は式またはバインド変数にすることができ、CHAR
、VARCHAR2
、NCHAR
またはNVARCHAR2
の型の文字列、NUMBER
、BINARY_FLOAT
またはBINARY_DOUBLE
の型の数値、あるいはNULLと評価される必要があります。expr
をBINARY_FLOAT
に変換する場合と同じ方法で、return_value
がBINARY_FLOAT
に変換されます。return_value
をBINARY_FLOAT
に変換できない場合は、エラーが戻されます。 -
オプションの'
fmt
'引数および'nlsparam
'引数の用途は、TO_NUMBER
ファンクションと同じです。これらの引数を指定した場合は、expr
とreturn_value
(指定した場合)は、それぞれ文字列またはNULLにする必要があります。いずれかが文字列である場合は、fmt
引数とnlsparam
引数が使用されて、文字列がBINARY_FLOAT
値に変換されます。
expr
またはreturn_value
が次の文字列に評価される場合、これらは次のように変換されます。
-
文字列'
INF
'(大/小文字は区別されない)は、正の無限大に変換されます。 -
文字列'-
INF
'(大/小文字は区別されない)は、負の無限大に変換されます。 -
文字列'
NaN
'(大/小文字は区別されない)は、NaN
(非数値)に変換されます。
expr
文字列には、浮動小数点数の書式要素(F
、f
、D
またはd
)は使用できません。
文字列またはNUMBER
からBINARY_FLOAT
への変換は、正確に行われない場合があります。これは、NUMBER
および文字列型では10進精度、BINARY_FLOAT
では2進精度を使用して数値を表現するためです。
BINARY_DOUBLE
値に、BINARY_FLOAT
がサポートする数を超える精度ビットが使用されている場合、BINARY_DOUBLE
からBINARY_FLOAT
への変換は正確に行われません。
BOOLEAN
型のexpr
を指定した場合、TRUE
は1に変換され、FALSE
は0に変換されます。
関連項目:
「TO_CHAR (数値)」および「浮動小数点数」を参照してください。
例
次の例では、「TO_BINARY_DOUBLE」で作成したfloat_point_demo
表を使用して、NUMBER
データ型の値をBINARY_FLOAT
データ型の値に変換します。
SELECT dec_num, TO_BINARY_FLOAT(dec_num) FROM float_point_demo; DEC_NUM TO_BINARY_FLOAT(DEC_NUM) ---------- ------------------------ 1234.56 1.235E+003
次の例では、指定した式をBINARY_FLOAT
値に変換できないため、デフォルト値の0
が戻されます。
SELECT TO_BINARY_FLOAT('2oo' DEFAULT 0 ON CONVERSION ERROR) "Value" FROM DUAL; Value ---------- 0