programing

Oracle SQL - 쉼표에 대한 소수점 변경

oldcodes 2023. 6. 28. 21:57
반응형

Oracle SQL - 쉼표에 대한 소수점 변경

저는 브라질에 있고, 우리의 통화 형식은 '999,00 R$' 정도입니다.

필드를 선택하고 반환 형식을 변경하려고 합니다.하지만, 저는 그것을 할 수 없을 것 같습니다.시도해 봤습니다.

ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';

그리고.

SELECT to_char(10,'9,999.00', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL

아무 것도 효과가 없었습니다.내 클라이언트(Ubuntu에서 sqdeveloper를 사용하고 있음)인지 아니면 내가 잘못하고 있는지 잘 모르겠습니다.

아이디어 있어요?

사용하다

SELECT to_char(10,'9G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL

G는 수천 개의 구분 기호입니다. D는 소수 구분 기호입니다.

포맷 마스크가 잘못된 것 같습니다.다음 형식 마스크를 사용해 보십시오.

SELECT to_char(10000,'99G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL

더 큰 숫자에 대해 올바른 숫자의 선두 '9' 형식 마스크를 사용해야 합니다.

문제를 해결한 방법을 해결했습니다.

SELECT TO_CHAR(1000000000,'999G999G999G999D99','NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

숫자의 형식을 수십억으로 지정합니다.도움이 되는 것 같아요.

CREATE OR REPLACE FUNCTION APPS.EX_number_format( ff number) RETURN char IS

xx varchar2(100);
yy varchar2(1);
tt varchar2(100);
x number:=0;
begin
xx:=to_char(ff,'99G990G990G990G990G990D00');
for i  in 1..length(xx) loop
yy:=substr(xx,i,1);
if yy in ('1','2','3','4','5','6','7','8','9') then
x:=i;
exit;
end if;
end loop;

tt:=substr(xx,x,length(xx));
return tt;

END EX_number_format;

이중에서 EX_number_format(1000)을 선택합니다;

1,000.00

듀얼에서 EX_number_format(1859684500)을 선택합니다;

1,859,684,500.00

언급URL : https://stackoverflow.com/questions/12974856/oracle-sql-change-decimal-dot-for-a-comma

반응형