2010-10-19 58 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

相关问题