728x90

Oracle SQL에서 문자의 일괄 변환 작업을 처리할 때 매우 유용한 함수가 TRANSLATE()입니다. 이 함수는 데이터 정제, 텍스트 매핑, 문자 치환 등의 다양한 목적에 활용되며, 특히 REPLACE() 함수와의 차이를 이해하고 적절히 사용하는 것이 중요합니다.
1. TRANSLATE 함수란?
TRANSLATE() 함수는 입력 문자열 내에서 지정한 문자들을 일대일로 다른 문자로 변환하는 Oracle SQL의 내장 함수입니다.
TRANSLATE(string, from_string, to_string)
string: 처리할 문자열from_string: 변환할 대상 문자들to_string: 변환 후 대응 문자들
※ from_string과 to_string은 문자 단위로 일대일 대응됩니다.
2. 기본 사용 예제
예제 1: 단일 문자 변환
SELECT TRANSLATE('ABC', 'A', 'X') AS result FROM dual;
결과: 'XBC'
예제 2: 여러 문자 동시 변환
SELECT TRANSLATE('123456', '123', 'ABC') AS result FROM dual;
결과: 'ABC456'
예제 3: 문자 제거 효과
SELECT TRANSLATE('DATA-2025', '-25', NULL) AS cleaned FROM dual;
결과: 'DATA0'
설명: to_string이 비어있으면 해당 문자가 제거됩니다.
3. 실무 활용 예제
예제 4: 특수문자 제거
-- 전화번호에서 하이픈 제거
SELECT TRANSLATE('010-1234-5678', '-', NULL) AS phone FROM dual;
결과: '01012345678'
예제 5: 숫자에서 알파벳 변환
SELECT TRANSLATE('123ABC', '123', 'XYZ') AS result FROM dual;
결과: 'XYZABC'
예제 6: 불필요한 문자 일괄 삭제
-- 테이블 컬럼에서 공백 및 특수문자 제거
SELECT TRANSLATE(column_value, ' -_', NULL) AS cleaned_column
FROM your_table;
용도: 데이터 클렌징 자동화 처리
4. TRANSLATE와 REPLACE의 차이점
| 항목 | TRANSLATE | REPLACE |
|---|---|---|
| 기능 | 단일 문자 단위의 매핑 | 문자열 전체 치환 |
| 문자 삭제 | to_string 생략 시 해당 문자 제거 | 해당 문자열 제거 |
| 사용 목적 | 간단한 문자 매핑 및 제거 | 전체 문자열 변경 |
5. TRANSLATE 사용 시 유의사항
from_string과to_string의 길이가 다르면 남는 문자는 무시됨- REPLACE보다 빠르지만 복잡한 치환에는 부적합
- REGEXP_REPLACE()와 차별점 이해 필요
6. 성능 및 최적화
TRANSLATE는 매우 가벼운 함수로 대용량 데이터 처리 시 유리합니다. 특히 단순 문자 제거 및 정형화된 패턴 처리에서 빠른 성능을 보이며, WHERE 절보다는 SELECT 절에서의 전처리 용도로 권장됩니다.
7. TRANSLATE 실전 팁
- 입력값 정제 시 사전 필터링으로 사용
- CSV 등 구분자 제거 시 활용
- 특정 포맷 통일(예: 대시 → 없음)
8. 결론
Oracle의 TRANSLATE 함수는 간단한 문자 수준의 데이터 정제 및 치환 작업에 매우 유용합니다. REPLACE나 REGEXP_REPLACE보다 빠르고 효율적인 구조 덕분에, 실무에서의 정제 작업에 자주 활용됩니다. 본문에서 다룬 다양한 예제를 바탕으로 실무 프로젝트에 적용해 보시기 바랍니다.
9. 참고자료
- Oracle 공식 문서: https://docs.oracle.com
- Oracle SQL Language Reference 21c
- SQL 전문가를 위한 실전 활용 가이드 - 김상형 저
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] REGEXP_REPLACE() 정규표현식으로 문자열 패턴 치환하는 방법 (0) | 2025.06.04 |
|---|---|
| [ORACLE] REGEXP_SUBSTR() 함수로 텍스트 분리하는 실무 활용 법 (0) | 2025.06.04 |
| [ORACLE] RTRIM() 사용법 : 문자열 오른쪽 공백 제거하는 방법 (0) | 2025.06.04 |
| [ORACLE] LTRIM()으로 문자열 앞 공백 제거하는 방법 (0) | 2025.06.04 |
| [ORACLE] RPAD()로 문자열 길이 맞추기 : 실무 활용 팁 (0) | 2025.06.03 |