📅  最后修改于: 2023-12-03 15:03:24.877000             🧑  作者: Mango
在 Oracle 中,可以使用 TO_NUMBER
函数将字符串转换为数字格式,该函数具有以下语法:
TO_NUMBER(string, [format], [nls_params])
其中,string
为要转换的字符串,format
为可选的格式化参数,nls_params
为可选的国际化参数。
以下是一些示例:
-- 将字符串 '123' 转换为数字类型
SELECT TO_NUMBER('123') FROM dual;
-- 将字符串 '123.45' 转换为数字类型
SELECT TO_NUMBER('123.45') FROM dual;
-- 将字符串 '$123.45' 转换为数字类型
SELECT TO_NUMBER('$123.45', '$999.99') FROM dual;
需要注意的是,如果要将一个非数字的字符串转换为数字类型,会抛出一个 ORA-01722
异常。此时,可以使用 CASE
函数进行处理,例如:
SELECT CASE WHEN REGEXP_LIKE('abc', '^\d+$') THEN TO_NUMBER('abc') ELSE NULL END FROM dual;
在这个示例中,如果 'abc'
不是一个数字,则返回 NULL
。
除了 TO_NUMBER
函数之外,在 Oracle 中还有许多其他函数可以将字符串转换为数字类型,比如 CAST
、CONVERT
等等。选择正确的函数是根据具体的需求而定的。
希望这篇介绍对你有帮助!