📜  oracle 转换字符串数字 - SQL (1)

📅  最后修改于: 2023-12-03 15:03:24.877000             🧑  作者: Mango

Oracle 转换字符串数字 - SQL

在 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 中还有许多其他函数可以将字符串转换为数字类型,比如 CASTCONVERT 等等。选择正确的函数是根据具体的需求而定的。

希望这篇介绍对你有帮助!