본문 바로가기
Database/Oracle

[ORACLE] INITCAP() 함수로 텍스트 포맷을 표준화하는 방법

by Papa Martino V 2025. 6. 3.
728x90

오라클 INITCAP() 함수로 텍스트 포맷을 표준화하는 방법
[Oracle] INITCAP

 

Oracle SQL에서 문자열의 각 단어 첫 글자를 대문자로 변환하는 INITCAP 함수에 대해 알아봅니다. 다양한 실무 예제와 함께 활용 방법을 자세히 설명합니다.

1. INITCAP 함수란?

INITCAP 함수는 문자열 내 각 단어의 첫 글자는 대문자로, 나머지는 소문자로 변환해 주는 Oracle 내장 함수입니다. 주로 사람 이름, 도서 제목, 문장 정렬 등에 활용됩니다.

INITCAP(string)
  • string: 포맷을 변환할 원본 문자열

2. 기본 사용 예제

SELECT INITCAP('oracle database') AS result FROM dual;
-- 결과: 'Oracle Database'
SELECT INITCAP('hELLo wORLD') FROM dual;
-- 결과: 'Hello World'

3. 사용자 이름 표준화

회원가입 시 입력된 이름이 대소문자 혼용되어 있을 경우 INITCAP을 통해 정리할 수 있습니다.

SELECT INITCAP(username) AS proper_name
FROM users;

4. 실무 활용 예제

1) 고객 이름 정리

UPDATE customers
SET name = INITCAP(name)
WHERE name IS NOT NULL;

2) 상품 카테고리 정리

SELECT DISTINCT INITCAP(category) AS category_name
FROM products;

3) 주소 데이터 정형화

SELECT INITCAP(address) AS proper_address
FROM delivery;

5. 다른 문자열 함수와의 비교

  • LOWER(string): 전체 소문자
  • UPPER(string): 전체 대문자
  • INITCAP(string): 단어의 첫 글자만 대문자
SELECT LOWER('HELLO'), UPPER('hello'), INITCAP('oracle sql') FROM dual;
-- 결과: 'hello', 'HELLO', 'Oracle Sql'

6. INITCAP의 특이사항

  • 단어는 공백 또는 특수 문자(예: 하이픈, 점 등)를 기준으로 구분됩니다.
  • 숫자 뒤의 문자는 첫 글자로 간주되지 않습니다.
SELECT INITCAP('mr.john-smith 123abc') FROM dual;
-- 결과: 'Mr.John-Smith 123abc'

7. 성능 팁

  • INITCAP 함수는 문자열 포맷 정리에 매우 유용하지만, WHERE 절에서 사용 시 인덱스를 무시할 수 있으므로 함수 기반 인덱스를 활용하는 것이 좋습니다.
CREATE INDEX idx_initcap_name ON employees(INITCAP(name));

8. 결론

INITCAP 함수는 사람 이름, 주소, 제목 등 포맷이 중요한 문자열 정리에 매우 유용한 함수입니다. LOWER, UPPER와 함께 조합하면 데이터 정규화에 큰 효과를 얻을 수 있습니다.

📚 참고 자료

  • Oracle 공식 문서: docs.oracle.com
  • Oracle SQL 활용 가이드 (한빛미디어)
  • 실무자를 위한 SQL 핸드북 (길벗출판사)
728x90