在Oracle中将varchar数据类型更改为Number

时间:2010-10-19 08:54:48

标签: database oracle plsql

我在oracle数据库中有这样的数据 - > 20123,45,数据类型是varchar。 我想将其迁移到NUMBER数据类型的列,将逗号(,)更改为点(。)。 所以预期的结果是20123.45,数据类型是NUMBER,

我该怎么做?

之前感谢:D

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

另一种方法是

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

分享并享受。