Oracle TO_NUMBER() 函数使用指南
Oracle TO_NUMBER() 是一个内置函数,它将给定的参数转换为 NUMBER 数据类型的值。
Oracle TO_NUMBER() 语法
这里是 Oracle TO_NUMBER() 函数的语法:
TO_NUMBER(expr [ DEFAULT return_value ON CONVERSION ERROR ]
[, fmt [, 'nlsparam' ] ])
参数
expr-
必需的。 它可以是任何表达式,它计算为
CHAR、VARCHAR2、NCHAR或NVARCHAR2类型的字符字符串、NUMBER、BINARY_FLOAT或BINARY_DOUBLE类型的数值,或 null。 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_NUMBER() 函数返回一个 NUMBER 数据类型的值。
如果 expr 是 NUMBER,则函数返回 expr。如果 expr 的计算结果为 null,则函数返回 null。否则,函数将 expr 转换为 NUMBER 值。
- 如果你指定的
expr是CHAR、VARCHAR2、NCHAR或NVARCHAR2数据类型的,则可以选择指定格式模型fmt。 - 如果你指定的
expr是BINARY_FLOAT或BINARY_DOUBLE数据类型的,则无法指定格式模型,因为浮点数只能通过其内部表示来解释。
此函数不直接支持 CLOB 数据。但是,可以通过隐式数据转换将 CLOB 作为参数传递。
如果任意一个参数为 NULL, TO_NUMBER() 将返回 NULL。
Oracle TO_NUMBER() 示例
这里有几个展示了 Oracle TO_NUMBER() 函数用法的示例。
基本用法
SELECT TO_NUMBER('100.00')
FROM dual;
输出:
TO_NUMBER('100.00')
______________________
100格式
对于一些带有千分位的数字,如果您直接转化为数值,Oracle 会报告一个错误:
SELECT TO_NUMBER('1,234,567.89')
FROM dual;
输出:
SQL Error: ORA-01722: invalid number
01722. 00000 - "invalid number"
*Cause: The specified number was invalid.
*Action: Specify a valid number.Oracle TO_NUMBER() 函数允许您指定输入数值的格式:
SELECT TO_NUMBER('1,234,567.89', '9G999G999D99')
FROM dual;
输出:
TO_NUMBER('1,234,567.89','9G999G999D99')
___________________________________________
1234567.89NULL 参数
如果任意一个参数为 NULL, TO_NUMBER() 将返回 NULL。
SET NULL 'NULL';
SELECT
TO_NUMBER(NULL)
FROM dual;
输出:
TO_NUMBER(NULL)
__________________
NULL在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。
结论
Oracle TO_NUMBER() 是一个内置函数,它将给定的参数转换为 NUMBER 数据类型的值。