我的功能应该将数字符号从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的任何人都知道该怎么做?
答案 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;