programing

Oracle의 to_char() 함수에 공백이 추가되는 이유는 무엇입니까?

megabox 2023. 2. 28. 23:24
반응형

Oracle의 to_char() 함수에 공백이 추가되는 이유는 무엇입니까?

Oracle의 장점인 이유to_char()공백 추가 기능?

select length('012'), 
       length(to_char('012')), 
       length(to_char('12', '000')) 
  from dual;

3, 3, 4

추가 선두 공간은 잠재적 마이너스 기호입니다.FM 형식을 사용할 수 있는 공간을 제거하려면 다음 절차를 따릅니다.

SQL> select to_char(12,'FM000') from dual;

TO_C
----
012

참고로 to_char는 NUMBER 인수를 사용합니다.to_char (' 012'는 암묵적으로_char(to_number 0 012')로 변환됩니다.= to_char(12)

답변을 더 명확하게 하기 위해:

select '['||to_char(12, '000')||']', 
       '['||to_char(-12, '000')||']', 
       '['||to_char(12,'FM000')||']' 
from dual


[ 012]                      [-012]                       [012]  

사용 중인 형식 마스크는 고정 너비이며 마이너스 기호를 사용할 수 있습니다.

'fm' 구문을 사용할 경우 0을 사용하여 지정하지 않는 한 소수점 뒤에 값이 포함되지 않습니다.예를 들어 다음과 같습니다.

SELECT TO_CHAR(12345, 'fm99,999.00') FROM dual                               

반환: '12,345.00'

SELECT TO_CHAR(12345, 'fm99,999.99') FROM dual                            

반환: '12,345'

보시는 바와 같이 소수점 뒤에 두 개의 제로가 있을 경우(예: 요금 보고서)가 문제가 됩니다.

언급URL : https://stackoverflow.com/questions/240182/why-is-oracles-to-char-function-adding-spaces

반응형