개요
UTL_MATCH는 두 문자열 간의 유사도를 비교해주는 패키지입니다. 본 글은 UTL_MATCH 의 일부 기능 및 관련 패치에 대해 안내 합니다.
방법
EDIT_DISTANCE
두 문자열을 자릿수 단위로 비교하여, 서로 다른 문자 수를 정수값으로 반환합니다.
두 문자열 중 하나라도 NULL이면 -1을 반환합니다.
실행 결과) str1:Cunnigham , str2:Dunningham
DBMS_OUTPUT.PUT_LINE(UTL_MATCH.EDIT_DISTANCE('Cunnigham', 'Dunningham'));
SQL
복사
→ 2글자 차이이므로 2를 반환합니다.
EDIT_DISTANCE_SIMILARITY
두 문자열의 유사도를 백분율(0~100)로 계산합니다.
긴 문자열을 기준으로 얼마나 일치하는지를 퍼센트로 표시합니다.
실행 결과) str1:Cunnigham , str2:Dunningham
DBMS_OUTPUT.PUT_LINE(UTL_MATCH.EDIT_DISTANCE_SIMILARITY('Cunnigham', 'Dunningham'));
SQL
복사
→ 긴 문자열인 Dunningham 기준으로 10자 중 2자가 다르므로 80 반환합니다.
JARO_WINKLER
JARO_WINKLER는 문자열의 유사도를 Jaro-Winkler 알고리즘을 이용해 계산하는 함수입니다.
참고