Oracle SQL에서 문자열의 특정 문자를 다른 문자로 대체할 때 사용하는 REPLACE 함수에 대해 알아봅니다. 다양한 실무 예제와 함께 활용 방법을 자세히 설명합니다.
1. REPLACE 함수란?
REPLACE 함수는 문자열에서 특정 부분 문자열을 찾아 다른 문자열로 대체할 때 사용합니다. 기본 문법은 다음과 같습니다:
REPLACE(string, search_string, replacement_string)
string
: 원본 문자열search_string
: 찾을 문자열replacement_string
: 대체할 문자열
2. 기본 사용 예제
SELECT REPLACE('Oracle Database', 'Database', 'SQL') AS result FROM dual;
-- 결과: 'Oracle SQL'
SELECT REPLACE('123-456-789', '-', '') AS result FROM dual;
-- 결과: '123456789'
3. NULL 처리 주의사항
REPLACE 함수의 인자 중 하나라도 NULL이면 결과는 NULL이 됩니다.
SELECT REPLACE(NULL, 'a', 'b') FROM dual;
-- 결과: NULL
4. 중첩 사용 예제
REPLACE 함수는 중첩 사용이 가능하여, 여러 문자를 순차적으로 대체할 수 있습니다.
SELECT REPLACE(REPLACE('A-B-C', '-', ''), 'B', 'X') AS result FROM dual;
-- 결과: 'AXC'
5. 실무 활용 예제
1) 전화번호 포맷 정리
SELECT REPLACE(REPLACE(phone, '-', ''), ' ', '') AS clean_phone
FROM customer;
2) 로그 문자열 클렌징
SELECT REPLACE(log_message, 'ERROR:', '') AS message
FROM logs
WHERE log_level = 'ERROR';
3) HTML 태그 제거 (간단한 경우)
SELECT REPLACE(REPLACE(html_text, '', ''), '', '') AS plain_text
FROM documents;
6. REPLACE 함수와 관련 함수 비교
- TRANSLATE(string, from_chars, to_chars): 문자 단위로 대체
- SUBSTR(string, start, length): 문자열 일부 추출
- REGEXP_REPLACE(string, pattern, replacement): 정규 표현식 기반 치환
SELECT TRANSLATE('A-B-C', '-C', 'xy') AS result FROM dual;
-- 결과: 'AxyBxy'
7. 성능 및 주의사항
- REPLACE는 단순 치환 함수로, 패턴 인식이 필요한 경우 REGEXP_REPLACE 사용 권장
- NULL 처리에 주의: NULL 인자는 전체 결과가 NULL이 됨
- 대용량 데이터 처리 시, 필요한 경우 인덱스 영향을 고려하여 WHERE 절 사용
8. 결론
REPLACE 함수는 문자열 정제, 데이터 마이그레이션, 사용자 입력값 처리 등 다양한 상황에서 활용할 수 있는 필수 문자열 함수입니다. TRANSLATE, REGEXP_REPLACE 등과 함께 사용하면 더욱 강력한 문자열 조작이 가능합니다.
'Database > Oracle' 카테고리의 다른 글
[ Oracle] 오라클 LOWER() 함수로 대소문자 문제 해결하기 (0) | 2025.06.03 |
---|---|
[ Oracle] 오라클 UPPER() 함수로 대문자 처리하는 방법 총정리 (0) | 2025.06.03 |
[ Oracle] 오라클 TRIM() 함수 완전 정복: 공백 및 문자 제거 활용법 (0) | 2025.06.03 |
[ Oracle] 오라클 LENGTH()로 문자열 길이 계산하기: 기본부터 고급까지 (0) | 2025.06.03 |
[ Oracle] 오라클 INSTR() 함수로 문자열 위치 찾기의 모든 것 (0) | 2025.06.03 |