【发布时间】:2018-11-03 01:48:31
【问题描述】:
我刚刚注意到这一点,这对我来说毫无意义:
select to_number( '10000', '999G990' ) from dual;
ORA-01722: invalid number
好的,这是有道理的,格式模型包含G,组分隔符,它与我的字符串不匹配,因此引发了 ORA-01722。
select to_number( '10,000', '999990' ) as x from dual;
X
----------
10000
但在这种情况下,我的格式模型不包含组分隔符,而我的字符串包含。那么 ORA-01722 不应该再次提出来吗?
而且绝对没有意义,
select to_number( '10,0000', '999990' ) as x from dual;
X
----------
100000
等等,什么? 10,0000 甚至不是一个有效的数字。当它们不在格式模型中时,TO_NUMBER 是否只是忽略组分隔符?我在文档中的任何地方都找不到关于此的任何信息。
编辑:
我在 Oracle XE (11gR2) 和 12cR2 上注意到了这一点。 SQLFiddle 例子。
【问题讨论】:
-
你的最后一个例子是failing for me。或许可以告诉我们您使用的是哪个版本的 Oracle。
标签: sql oracle oracle11g oracle12c string-conversion