REPLACE 함수와 비슷하게 문자열을 치환해주는 기능을 하는데 표현식을 이용할 수 있어서
대상 문자열이 숫자 또는 문자를 판단할 때 간편하게 사용할 수 있습니다.
1. 단순 문자열 치환 : TRANSLATE('대상문자열', '비교문자', '바꿀문자')
> select translate('12345', '1', 'x') from dual;
> select replace('12345', '1', 'x') from dual;
둘다 결과값은 동일합니다.
2. 숫자 제거 : TRANSLATE('대상문자열', ' +.0123456789', ' ')
> select translate('abc1def2', ' +.0123456789', ' ') from dual
숫자 1,2 가 제거되고 'abcdef' 을 리턴합니다.
응용하면,
> select nvl(length(translate('a', ' +.0123456789', ' ')),0) from dual ==> 1을 리턴
> select nvl(length(translate('1', ' +.0123456789', ' ')),0) from dual ==> 0을 리턴
위와 같이 숫자 여부 판단에 사용될 수 있습니다. 왠지 숫자여부 판단하는 함수가 있을듯한데;;
3. 문자 제거 : TRANSLATE('대상문자열', '0123456789'||'대상문자열', '0123456789')
> select translate('abc1def2', '0123456789' || 'abc1def2', '0123456789') from dual ==> 12를 리턴
응용하면,
> select translate('010-123-4567', '0123456789' || '010-123-4567', '0123456789') from dual ==> 0101234567 을 리턴
예) select TRANSLATE('전화번호', '0123456789'||'전화번호', '0123456789') from dual;
숫자만 리턴됩니다~
'Oracle > oracle' 카테고리의 다른 글
Windows 7 64 bit에서 Oracle 11g Client 설치 문제 (0) | 2013.02.15 |
---|---|
hash_value VS sql_id (0) | 2012.07.17 |
over(partition by) 예제 (0) | 2011.09.09 |
Parameter DIRECT: Conventional Path Export Versus Direct Path Export [ID 155477.1] (0) | 2011.07.24 |
Append 힌트를 사용하려면 테이블을 NOLOGGING으로 설정해야 한다는 논란 (0) | 2011.07.06 |