728x90

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와 함께 조합하면 데이터 정규화에 큰 효과를 얻을 수 있습니다.
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] RPAD()로 문자열 길이 맞추기 : 실무 활용 팁 (0) | 2025.06.03 |
|---|---|
| [ORACLE] LPAD()로 숫자·문자 정렬 깔끔하게 처리하는 방법 (0) | 2025.06.03 |
| [ORACLE] LOWER() 함수로 대소문자 문제 해결하기 (0) | 2025.06.03 |
| [ORACLE] UPPER() 함수로 대문자 처리하는 방법 총 정리 (0) | 2025.06.03 |
| [ORACLE] REPLACE() 함수 사용법과 문자열 치환 실전 예제 (0) | 2025.06.03 |