如果转换成功,则T-SQL中的TRY_CONVERT()将返回一个转换为指定数据类型的值;否则它将返回NULL。
ORACLE中是否有类似的功能或重现此行为的方法?
cast(... DEFAULT NULL ON CONVERSION ERROR)从版本12.2开始可以使用。
完整的例子:
SELECT cast('ABC' AS NUMBER DEFAULT NULL ON CONVERSION ERROR) FROM dual
Run Code Online (Sandbox Code Playgroud)
如果您使用的不是 Oracle 12.2,则可以在转换之前使用正则表达式来确定该值是否有效。对于整数(在数学意义上,表示可选符号,然后是一位或多位数字):
SELECT
CASE WHEN REGEXP_LIKE(col, '^[-+]?[0-9]+$') THEN CAST(col AS NUMBER) END AS num
FROM myTable
Run Code Online (Sandbox Code Playgroud)
这提供了与 Oracle 12.2 相同的行为DEFAULT NULL ON CONVERSION ERROR。
对于整数以外的值,同样的方法适用,但正则表达式变得更难。
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |