【发布时间】:2011-05-28 01:57:28
【问题描述】:
SELECT TO_NUMBER('*') FROM DUAL
这显然给了我一个例外:
ORA-01722: 无效号码
有没有办法“跳过”它并改为获取0 或NULL?
整个问题:我有 NVARCHAR2 字段,其中包含数字而不是几乎 ;-)(如 *),我需要从列中选择最大的数字。
是的,我知道这是一个糟糕的设计,但这正是我现在需要的...... :-S
UPD:
我自己解决了这个问题
COALESCE(TO_NUMBER(REGEXP_SUBSTR(field, '^\d+')), 0)
【问题讨论】:
-
*是您唯一希望遇到的角色吗?
-
@OMG Ponies:不...我用丑陋的
REGEXP_SUBSTR(field, '^\d+')解决了这个问题
标签: oracle type-conversion ora-01722