Oracle sql将更改数字格式

Oracle sql将更改数字格式,sql,oracle,Sql,Oracle,我需要用点和逗号替换数字格式,使之成为简单的十进制数 例如:如果字符串是,25.25.25,00,它应该变成252525.00 如何实现这一点。您可以连续应用REPLACE()函数 REPLACE(REPLACE('25.25.25,00','.'),',','.') 或 首先将应用于\u NUMBER(),然后将应用于\u CHAR()函数 TO_CHAR( TO_NUMBER('25.25.25,00','999999999D99', 'NLS_NUMERIC_CHARAC

我需要用点和逗号替换数字格式,使之成为简单的十进制数

例如:如果字符串是,
25.25.25,00
,它应该变成
252525.00


如何实现这一点。

您可以连续应用
REPLACE()
函数

REPLACE(REPLACE('25.25.25,00','.'),',','.')

首先将
应用于\u NUMBER()
,然后将
应用于\u CHAR()
函数

TO_CHAR(
        TO_NUMBER('25.25.25,00','999999999D99', 'NLS_NUMERIC_CHARACTERS='',.'''),
       'fm999999999D00'
       )
对于第二种情况,假定比例的所有值最多有两位数


您可以按如下方式连续应用
REPLACE()
函数

REPLACE(REPLACE('25.25.25,00','.'),',','.')

首先将
应用于\u NUMBER()
,然后将
应用于\u CHAR()
函数

TO_CHAR(
        TO_NUMBER('25.25.25,00','999999999D99', 'NLS_NUMERIC_CHARACTERS='',.'''),
       'fm999999999D00'
       )
对于第二种情况,假定比例的所有值最多有两位数


使用
翻译功能:

select translate('25.25.25,00', ',.', '.') as new_str
from   dual
;

NEW_STR  
---------
252525.00

这会将“逗号”转换为“句点”,将“句点”转换为零(因为第三个参数比第二个参数短),这意味着它将被简单地丢弃。

使用
translate
函数:

select translate('25.25.25,00', ',.', '.') as new_str
from   dual
;

NEW_STR  
---------
252525.00

这会将“逗号”转换为“句点”,将“句点”转换为零(因为第三个参数比第二个参数短),这意味着它将被简单地丢弃。

究竟为什么要将数字存储为字符串?@OldProgrammer-链接到错误的函数。对于这种类型的多重同时替换,正确的函数是
translate
。你究竟为什么要将数字存储为字符串?@OldProgrammer-链接到错误的函数。这种类型的多个同时替换的正确功能是
translate