TRANSLATE
구문
TRANSLATE(expr, from_string, to_string)
목적
TRANSLATE 함수는 from_string의 각 문자열을 to_string의 해당 문자열로 대체하여 expr을 반환합니다. from_string에 없는 expr 내의 문자는 대체되지 않습니다. from_string 인수에는 to_string보다 더 많은 문자가 포함될 수 있습니다. 이 경우 from_string 끝의 추가 문자는 to_string에 해당 문자가 없습니다. 이러한 추가 문자가 expr에 나타나면 반환 값에서 제거됩니다.
만약 from_string에서 문자가 여러 번 나타나면 첫 번째 발생에 해당하는 to_string 매핑이 사용됩니다.
from_string에서 모든 문자를 반환 값에서 제거하려면 to_string에 빈 문자열을 사용할 수 없습니다. Oracle Database는 빈 문자열을 null로 해석하며, 이 함수가 null 인수를 가지고 있는 경우 null을 반환합니다. from_string에서 모든 문자를 제거하려면 from_string의 시작 부분에 다른 문자를 연결하고 이 문자를 to_string으로 지정하십시오. 예를 들어, TRANSLATE(expr, 'x0123456789', 'x')는 expr에서 모든 숫자를 제거합니다.
TRANSLATE는 REPLACE 함수가 제공하는 기능과 관련된 기능을 제공합니다. REPLACE는 다른 단일 문자열을 대체하거나 문자열을 제거하는 데 사용됩니다. TRANSLATE는 여러 개의 단일 문자, 일대일 대체를 한 번에 수행할 수 있게 해줍니다.
이 함수는 CLOB 데이터를 직접 지원하지 않습니다. 그러나 CLOB는 암묵적 데이터 변환을 통해 인수로 전달될 수 있습니다.
참고:
- 더 많은 정보는 "Data Type Comparison Rules", REPLACE를 참조하십시오.
- Oracle Database Globalization Support Guide의 부록 C는TRANSLATE가 expr의 문자와 from_string의 문자를 비교할 때 사용하는 콜레이션(collation)을 정의하는 정렬 결정 규칙(collation determination rules) 및 TRANSLATE의 문자 반환 값에 할당되는 콜레이션(collation)을 정의하는 정렬 파생 규칙(collation derivation rules)에 대한 정보를 제공합니다.
예제
다음 문장은 책 제목을 파일 이름으로 사용할 수 있는 문자열로 변환합니다. from_string에는 공백, 별표, 슬래시 및 작은따옴표 네 개의 문자가 포함되어 있습니다(작은따옴표 뒤에 추가 작은따옴표가 이스케이프 문자로 사용됩니다). to_string에는 밑줄 세 개만 포함되어 있습니다. 이로 인해 from_string의 네 번째 문자에 대응하는 대체 문자가 없으므로 반환된 값에서 작은따옴표가 제거됩니다.
SELECT TRANSLATE('SQL*Plus User''s Guide', ' */''', '___') FROM DUAL;
TRANSLATE('SQL*PLUSU
--------------------
SQL_Plus_Users_Guide
출처: 오라클 레퍼런스
원문 링크: Oracle TRANSLATE 함수 문서
댓글