2009-11-26 78 views

回答

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

快速猜測: 0.22 0.22對比(同爲9.99與0.99)