더북(TheBook)

Knowhow | TRANSLATE 함수는 어떤 경우에 사용할까?

특정 문자열을 다른 문자열로 대체할 때나 공백을 제거할 때 대부분 REPLACE 함수를 사용한다. 문자열 대체라는 의미에서 본다면 굳이 TRANSLATE 함수를 사용할 필요 없이 REPLACE 함수만으로 충분하다. 그런데 이와 비슷한 용도의 TRANSLATE 함수는 언제 사용할까?

꼭 이럴 때 사용하라는 지침은 없다. 사실 필자도 현장에서 거의 사용해 본 경험은 없다. TRANSLATE 함수를 사용하는 것이 좋을 때를 굳이 찾아내라고 한다면, 단순한 암호화와 복호화 처리할 때를 들 수 있다. 예를 들어, 사원 테이블에서 사원명을 암호화해서 보여줘야 한다면….

입력

    SELECT employee_id, TRANSLATE(EMP_NAME,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','thehillsarealivewiththesou') AS TRANS_NAME
      FROM employees;

결과

    EMPLOYEE_ID TRANS_NAME
    ----------- ---------------------
            198 honaldveonnell
            199 houglaslrant
            200 renniferehalen
            201 lichaelsartstein
            202 eat lay
    ...
    107개의 행이 선택됨.

26개의 알파벳 문자를 특정 문자로 대체해서 마치 암호를 건 것처럼 사원 이름이 이상하게 표시됐다. 또한 주민번호와 같은 민감한 정보도 0~9까지의 숫자를 다른 문자로 대체하여 TRANSLATE 함수를 사용하면 원래 정보를 숨길 수 있다.

그렇다고 위의 예제처럼 현장에서 암호화나 주민번호를 숨기는데 TRANSLATE 함수를 사용해서는 안 된다. 다만 TRANSLATE 함수를 이런 식으로도 사용할 수 있다는 내용을 소개한 것이므로 참조하기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.