📅  最后修改于: 2023-12-03 14:44:55.984000             🧑  作者: Mango
在 Oracle 数据库中,to_number 函数用于将字符串数据转换为数字类型。它的基本语法如下:
to_number(string, [format_mask], [nls_parameters])
其中,参数的含义如下:
string
:需要转换为数字类型的字符串。它可以包含数字、小数点、正负号等字符。format_mask
(可选):用于指定 string
参数中数字的格式,例如小数点的位置、千位分隔符等。如果不指定,Oracle 将根据当前会话的 NLS 配置信息自动识别格式。nls_parameters
(可选):用于指定数字的格式化方式、日期格式等 NLS(National Language Support)参数。如果不指定,Oracle 将使用当前会话的 NLS 配置信息。下面是一些例子。
SELECT to_number('12345') as num FROM dual;
-- OUTPUT: 12345
SELECT to_number('123.45') as num FROM dual;
-- OUTPUT: 123.45
SELECT to_number('20220101', 'YYYYMMDD') as num FROM dual;
-- OUTPUT: 20220101
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
SELECT to_number('1234.56', '9999D99', 'NLS_NUMERIC_CHARACTERS='',.''') as num FROM dual;
-- OUTPUT: 1234.56
需要注意的是,如果 string
参数无法正确转换为数字类型,to_number 函数将会抛出异常。此外,如果没有正确指定格式掩码或 NLS 参数,也会导致转换不成功。因此,在使用 to_number 函数时,需要注意这些细节。