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;
숫자만 리턴됩니다~
오라클 8i 이상부터는 이용할 수 있습니다.
'Oracle' 카테고리의 다른 글
DROP된 테이블, 테이블스페이스 FLASHBACK 기능으로 복구하기. (0) | 2011.05.04 |
---|---|
explain plan. plan table 생성 및 실행계획 확인법 (0) | 2011.04.27 |
자주 참조하는 DB dictionary (0) | 2010.07.02 |
HWM (0) | 2009.10.18 |
현재 날짜 가져오기! (1) | 2009.10.18 |