甲骨文的数量 - 出了什么问题?

时间:2009-11-26 15:49:31

标签: sql oracle

to_number的以下格式说明符有什么问题?

SELECT TO_NUMBER('0,22', '0,99') * 100 FROM DUAL;

结果是2200而不是22 - 我做错了什么?

2 个答案:

答案 0 :(得分:13)

尝试:

TO_NUMBER('0,22', '9D99')

与文字逗号不同,D仅匹配小数点分隔符。因此,如果失败,您的小数点分隔符可能是.,而不是,

您可以使用此命令查看小数分隔符和千位分隔符:

select value from nls_session_parameters
where parameter = 'NLS_NUMERIC_CHARACTERS'

如果返回.,,则逗号为千位分隔符。

要更改单个查询的分隔符,您可以:

select TO_NUMBER('0,22','9D99','nls_numeric_characters=,.') from dual;

答案 1 :(得分:1)

快速猜测: 0.22对0,22(相同于9.99对0,99)