将varchar数据类型更改为Oracle中的Number
我在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