我在oracle數據庫 - > 20123,45中有這樣的數據,數據類型是varchar。 我想將它遷移到NUMBER數據類型的列,請將逗號(,)更改爲點(。)。 所以預期的結果是20123.45和數據類型是NUMBER,將varchar數據類型更改爲Oracle中的Number
我該怎麼做?前
感謝:d
我在oracle數據庫 - > 20123,45中有這樣的數據,數據類型是varchar。 我想將它遷移到NUMBER數據類型的列,請將逗號(,)更改爲點(。)。 所以預期的結果是20123.45和數據類型是NUMBER,將varchar數據類型更改爲Oracle中的Number
我該怎麼做?前
感謝:d
另一種方式做,這將是
SELECT TO_NUMBER(REPLACE('12345,6789123', ',', '.')) FROM DUAL;
分享和享受。
使用
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
如果我有不同長度的數據呢?分離前後的長度不一樣? – 2010-10-19 09:08:10
@aldi,只要你需要,讓你的格式掩碼。例如'999999999999999999999999D9999999999999999999' – 2010-10-19 09:14:49
oke ,,其工作邁克爾,謝謝,但是當我使用ColumnName時,出現錯誤:無效的sql語句,但是當我使用硬編碼值時,它的工作,任何想法? – 2010-10-19 09:27:02
oke ,,謝謝你的消化Bob:D – 2010-11-25 07:03:04