오라클 TO_CHAR함수는??
오라클의 TO_CHAR함수는 숫자나 날짜 데이터를 문자열로 변환할 때 사용 됩니다.
데이터를 문자열로 변환 할때 format model을 사용하여 원하는 출력 형식을 나타낼 수 있습니다.
이 중에서 FM 포맷 모델은 숫자나 날짜 데이터를 변환할 때 불필요한 공백이나 패딩을 제거하는 역할을 합니다.
TO_CHAR 함수의 기본 형식
TO_CHAR(number, ‘format_model’)
– number는 변환할 숫자이며, format_model은 원하는 출력 형식을 지정하는 문자열입니다.
FM format
FM은 “Fill Mode”의 약자이고, 숫자 앞에 불필요하게 붙는 공백이나 0등을 제거해줍니다.
기본적으로 숫자 변환 시 자릿수에 맞추기 위해 추가되는 공백이나 0이 있지만, FM을 사용하면 이런 것들이 제거됩니다.
FM format 사용 예시
1. 기본적인 숫자 변환
SELECT TO_CHAR(1234, ‘9999’) FROM DUAL;
위 결과는 ‘1234’로 나타냅니다. 숫자 1234가 4자리를 차지하므로 그대로 출력 됩니다.
2. FM을 사용하지 않은 경우
SELECT TO_CHAR(1234, ‘99999’) FROM DUAL;
결과는 ‘ 1234’로 나타냅니다. 숫자 1234가 4자리 이지만 format_model은 5자리 이므로, 앞쪽 자리에 공백이 추가됩니다.
3. FM을 사용한 경우
SELECT TO_CHAR(1234, ‘FM99999’) FROM DUAL;
결과는 기본적인 변환과 동일하게 ‘1234’ 입니다. ‘FM’ 이 지정되어 있기 때문에 불필요한 공백이 제거 되었기 때문입니다.
4. 숫자 앞에 0을 붙이는 경우
SELECT TO_CHAR(12, ‘0000’) FROM DUAL;
결과는 ‘ 0012’입니다. 숫자 12 앞에 두 개의 0이 추가되었고, 문자열 제일 첫 번째 자리에 공백이 생겼습니다.
5. FM과 0을 함께 사용하는 경우
SELECT TO_CHAR(12, ‘FM0000’) FROM DUAL;
결과는 ‘0012’ 나타냅니다. ‘FM’ 포함되어져 있어 덕분에 앞의 공백이 제거되었습니다.(FM 공백 제거)
정리하자면!!
FM format은 Oracle의 TO_CHAR 함수에서 숫자나 날짜를 문자열로 변환할 때
불필요한 공백이나 0을 제거하여 보다 간결한 결과를 얻을 수 있도록 도와주는 역할을 합니다.