본문 바로가기
Database/Oracle

[ Oracle] 오라클 REPLACE() 함수 사용법과 문자열 치환 실전 예제

by 코드개미 2025. 6. 3.

오라클 REPLACE() 함수 사용법과 문자열 치환 실전 예제
[Oracle] REPLACE

 

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 등과 함께 사용하면 더욱 강력한 문자열 조작이 가능합니다.

📚 참고 자료

  • Oracle 공식 문서: docs.oracle.com
  • Oracle SQL 개발자 핸드북
  • SQL 전문가 가이드북 (길벗)