在pl / sql中将数字输出[。]更改为[,]

时间:2014-09-04 18:01:01

标签: sql oracle plsql oracle-apex

我的功能应该将数字符号从12345.67€更改为12345,67€

 select

        replace(
    to_char(round(

    123456.789

    ,2),'999G999G999G990D'||substr('0000000000',1,2),'nls_numeric_characters=''.,'''),'.',','
    ) || ' €' 

    from dual;

目前的结果是: 123,456,79€ 我想得到的结果: 123456,79€

但是我'不知道怎么做。我的oracle以123456.79的格式返回值,所以这是我计算的原因。 Doe的任何人都知道该怎么做?

3 个答案:

答案 0 :(得分:2)

ALTER SESSION SET NLS_TERRITORY ='瑞典'举个例子。或爱沙尼亚。
数字格式是从NLS_TERRITORY参数的设置派生的,但它们可以被NLS_NUMERIC_CHARACTERS参数覆盖。

答案 1 :(得分:1)

您应该在会话或查询中设置NLS参数(如果它们不正确),例如

select to_char(123456.789
              ,'9999990D00L'
              ,'nls_numeric_characters='',.'' nls_currency=''€''')
from dual

答案 2 :(得分:0)

select

replace(
to_char(round(

123456.789

,2),'999999999990D'||substr('0000000000',1,2),'nls_numeric_characters=''.,'''),'.',','
) || ' €' 

from dual;   
相关问题