我有以下情况。
我正尝试按如下方式使用to_NUMBER:
SELECT TO_NUMBER('$123,456.789','$999,999G999D999') FROM DUAL;
我得到
`
ORA-01481: invalid number format model
01481. 00000 - "invalid number format model"
*Cause: The user is attempting to either convert a number to a string
via TO_CHAR or a string to a number via TO_NUMBER and has
supplied an invalid number format model parameter.
*Action: Consult your manual.
`
我记得我在某个地方读到,不可能将G和D与和混合。在传递格式时,但找不到任何Oracle官方文档来证实这一点。
如果有人能澄清这种情况,或者给我指一篇文章或帖子,我会非常感激,因为我什么都找不到。也许我的谷歌搜索需要一些帮助:(
在整个中使用G
和D
SELECT TO_NUMBER('$123,456.789','$999G999G999D999') AS value FROM DUAL;
如果需要,可以明确指定NLS_NUMERIC_CHARACTERS
设置:
SELECT TO_NUMBER(
'$123,456.789',
'$999G999G999D999',
'NLS_NUMERIC_CHARACTERS=.,'
) AS value
FROM DUAL;
或者在整个中使用,
和.
SELECT TO_NUMBER('$123,456.789','$999,999,999.999') AS value FROM DUAL;
哪些全部输出:
VALUE |
---|
12346.789 |