2010-10-19 57 views
1

我在oracle數據庫 - > 20123,45中有這樣的數據,數據類型是varchar。 我想將它遷移到NUMBER數據類型的列,請將逗號(,)更改爲點(。)。 所以預期的結果是20123.45和數據類型是NUMBER,將varchar數據類型更改爲Oracle中的Number

我該怎麼做?前

感謝:d

回答

0

另一種方式做,這將是

SELECT TO_NUMBER(REPLACE('12345,6789123', ',', '.')) FROM DUAL; 

分享和享受。

+0

oke ,,謝謝你的消化Bob:D – 2010-11-25 07:03:04

6

使用

to_number(YourColumnName, FormatMask, NLS_NUMERIC_CHARACTERS = ',.') from ... 

select to_number('12345.667677', '99999999D999999', 'NLS_NUMERIC_CHARACTERS = ''.,''') 
from dual 

select to_number('12345,667677', '99999999D999999', 'NLS_NUMERIC_CHARACTERS = '',.''') 
from dual 
+0

如果我有不同長度的數據呢?分離前後的長度不一樣? – 2010-10-19 09:08:10

+0

@aldi,只要你需要,讓你的格式掩碼。例如'999999999999999999999999D9999999999999999999' – 2010-10-19 09:14:49

+0

oke ,,其工作邁克爾,謝謝,但是當我使用ColumnName時,出現錯誤:無效的sql語句,但是當我使用硬編碼值時,它的工作,任何想法? – 2010-10-19 09:27:02

相關問題