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 함수를 이런 식으로도 사용할 수 있다는 내용을 소개한 것이므로 참조하기 바란다.

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