[Oracle] 숫자 -> 문자 변경 시 포맷 설정

2025. 5. 24. 14:42·[DB]/- Oracle

오라클 DB에서 숫자를 문자 포맷으로 변경할 때 특정 포맷(123.45 or 0.123)으로 변환하여 출력해야 하는 경우가 있었다.

 

1. TO_CHAR(값, '포맷')  /  9와 0

TO_CHAR( ) 함수를 사용하여 원하는 포맷으로 변환할 수 있다. 이때 9와 0을 사용할 수 있다.

  • 9 : 가변 숫자로써 값이 매칭되면 값이 출력되고 그렇지 않다면 공백으로 치환됨
  • 0 : 고정 숫자로써 값이 매칭되면 값이 출력되고 그렇지 않다면 0이 출력됨

예제)

SELECT TO_CHAR(123.45, '99') FROM dual;
SELECT TO_CHAR(123.45, '00') FROM dual;
// ### (값보다 포맷이 더 작으면 이처럼 오류가 발생)

SELECT TO_CHAR(123.45, '999') FROM dual;
SELECT TO_CHAR(123.45, '000') FROM dual;
// 123 (123.45가 반올림되어 123이 됨)

SELECT TO_CHAR(123.45, '999.9') FROM dual;
SELECT TO_CHAR(123.45, '000.0') FROM dual;
// 123.5 (0.45가 반올림되어 0.5가 됨)

SELECT TO_CHAR(123.45, '999.99') FROM dual;
SELECT TO_CHAR(123.45, '000.00') FROM dual;
// 123.45

SELECT TO_CHAR(123.45, '999.999') FROM dual;
SELECT TO_CHAR(123.45, '000.000') FROM dual;
// 123.450

SELECT TO_CHAR(123.45, '9999.99') FROM dual; //  123.45 (남는 9가 공백으로 치환됨)
SELECT TO_CHAR(123.45, '0000.00') FROM dual; // 0123.45

SELECT TO_CHAR(0.123, '9.999') FROM dual; //  .123 (0.123에서 0이 공백으로 치환됨)
SELECT TO_CHAR(0.123, '0.000') FROM dual; // 0.123

SELECT TO_CHAR(0.123, '99.999') FROM dual; //   .123
SELECT TO_CHAR(0.123, '00.000') FROM dual; // 00.123

 

2. FM

포맷 앞에 'FM' 키워드를 붙이면 매칭된 수를 제외하고 치환된 공백이나 소숫점 이하 0 부분이 삭제된다. 단, 이는 가변 숫자인 9에만 적용되고 고정 숫자인 0에는 적용되지 않는다.

 

예제)

SELECT TO_CHAR(0.123, '999.9999') FROM dual; //    .1230 (소숫점 앞 공백 3자리)
SELECT TO_CHAR(0.123, 'FM999.9999') FROM dual; // .123 (소숫점 앞 공백 없음)

SELECT TO_CHAR(0.123, '000.0000') FROM dual; // 000.1230
SELECT TO_CHAR(0.123, 'FM000.0000') FROM dual; // 000.1230 (포맷 0은 고정이므로 잘리지 않음)

 

저작자표시 비영리 (새창열림)

'[DB] > - Oracle' 카테고리의 다른 글

[Oracle] NVL, NVL2 함수  (0) 2025.05.27
[Oracle] 정규식 (일반 문자 - Literal Character, 메타 문자 - Meta Character)  (0) 2025.05.27
[Oracle] SID, SNAME이란? SNAME 변경 방법  (0) 2025.05.23
[Oracle] RAC(Real Application Cluster)와 HA(High Availability)  (0) 2025.05.22
[Oracle] Port 포트 번호 변경하는 방법  (0) 2025.05.22
'[DB]/- Oracle' 카테고리의 다른 글
  • [Oracle] NVL, NVL2 함수
  • [Oracle] 정규식 (일반 문자 - Literal Character, 메타 문자 - Meta Character)
  • [Oracle] SID, SNAME이란? SNAME 변경 방법
  • [Oracle] RAC(Real Application Cluster)와 HA(High Availability)
Semincolon
Semincolon
It seems small, that semicolon is a big deal.
  • Semincolon
    Semincolon
    Semincolon
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • [Programming Language] (78)
        • [JSP] (6)
        • [Swift] (23)
        • [SwiftUI] (16)
        • [Python] (22)
        • [C언어] (6)
        • [Kotlin] (4)
        • [C#] (1)
      • [Frame Work] (5)
        • [Flutter] (4)
        • [Spring Boot] (1)
      • [Projects] (3)
        • [Android][Kotlin] 공유 캘린더(20.. (1)
        • [Unity] 인내의 숲(2024.03) (2)
      • [DB] (15)
        • - Oracle (15)
      • [Programmers] (25)
        • - SQL (25)
      • [ETC] (2)
      • Today's Learning (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Semincolon
[Oracle] 숫자 -> 문자 변경 시 포맷 설정
상단으로

티스토리툴바