Oracle TO_BINARY_DOUBLE() 函数使用指南
Oracle TO_BINARY_DOUBLE()
是一个内置函数,它将给定的表达式转换为双精度浮点数。
Oracle TO_BINARY_DOUBLE()
语法
这里是 Oracle TO_BINARY_DOUBLE()
函数的语法:
TO_BINARY_DOUBLE(expr [ DEFAULT return_value ON CONVERSION ERROR ]
[, fmt [, 'nlsparam' ] ])
参数
expr
-
必需的。 它可以是任何表达式,它计算为
CHAR
、VARCHAR2
、NCHAR
或NVARCHAR2
类型的字符字符串、NUMBER
、BINARY_FLOAT
或BINARY_DOUBLE
类型的数值,或 null。 您不能在字符字符串expr
中使用浮点数格式元素 (F
、f
、D
或d
)。 DEFAULT return_value ON CONVERSION ERROR
-
可选的。它允许您指定在转换发生错误时返回的值。
return_value
可以是表达式或绑定变量,并且必须计算为CHAR
、VARCHAR2
、NCHAR
或NVARCHAR2
类型的字符字符串、NUMBER
、BINARY_FLOAT
或BINARY_DOUBLE
类型的数值或 null。该函数以与将expr
转换为BINARY_DOUBLE
相同的方式将return_value
转换为BINARY_DOUBLE
。如果无法将return_value
转换为BINARY_DOUBLE
,则该函数返回错误。 fmt
-
可选的。格式化字符串。
'nlsparam'
-
可选的。您可以使用这个
'NLS_DATE_LANGUAGE = language'
形式设置此参数,其中language
是语言名称。
返回值
Oracle TO_BINARY_DOUBLE()
函数返回一个双精度浮点数。
如果 expr
是 BINARY_DOUBLE
,则该函数返回 expr
。如果 expr
计算结果为 null,则该函数返回 null。否则,该函数将 expr
转换为 BINARY_DOUBLE
值。
如果 expr
或 return_value
计算为以下字符字符串,则该函数将其转换如下:
- 不区分大小写的字符串 “
INF
” 转换为正无穷。 - 不区分大小写的字符串 “
-INF
” 转换为负无穷。 - 不区分大小写的字符串 “
NaN
” 转换为NaN
(不是数字)。
注意:
- 从字符字符串或
NUMBER
到BINARY_DOUBLE
的转换可能不精确,因为NUMBER
和字符类型使用十进制精度表示数字值,而BINARY_DOUBLE
使用二进制精度。 - 从
BINARY_FLOAT
到BINARY_DOUBLE
的转换是精确的。
Oracle TO_BINARY_DOUBLE()
示例
这里有几个展示了 Oracle TO_BINARY_DOUBLE()
函数用法的示例。
基本用法
下面的语句展示了 Oracle TO_BINARY_DOUBLE()
函数的基本用法:
SELECT
TO_BINARY_DOUBLE(1)
FROM dual;
输出:
TO_BINARY_DOUBLE(1)
______________________
1.0
INF
和 -INF
Oracle TO_BINARY_DOUBLE()
函数将不区分大小写的字符串 “INF
” 和 “-INF
” 分别转换为正无穷和负无穷。
SELECT
TO_BINARY_DOUBLE('INF') "INF",
TO_BINARY_DOUBLE('-INF') "-INF"
FROM dual;
输出:
INF -INF
___________ ____________
Infinity -Infinity
NaN
Oracle TO_BINARY_DOUBLE()
函数将不区分大小写的字符串 “NaN
” 转换为 NaN
(不是数字)。
SELECT
TO_BINARY_DOUBLE('NaN') "NaN",
TO_BINARY_DOUBLE('nan') "nan",
TO_BINARY_DOUBLE('NAN') "NAN"
FROM dual;
输出:
NaN nan NAN
______ ______ ______
NaN NaN NaN
NULL 参数
如果任意一个参数为 NULL
, TO_BINARY_DOUBLE()
将返回 NULL
。
SET NULL 'NULL';
SELECT
TO_BINARY_DOUBLE(NULL)
FROM dual;
输出:
TO_BINARY_DOUBLE(NULL)
_________________________
NULL
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle TO_BINARY_DOUBLE()
是一个内置函数,它将给定的表达式转换为双精度浮点数。