Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

SOUNDEX

문법

MAIN

soundex::=
Description of soundex.gif follows

그림 설명
 

목적

MAIN

SOUNDEX함수는 char의 음성 표현을 가지는 문자열을 반환한다. 이 함수는 스펠링이 틀려도 발음이 유사한 영단어를 비교할수 있다.

음성 표현은 "The Art of Computer Programming, Volume 3: Sorting and Searching"(Donald E.Knuth저)에서 다음과 같이 정의되고 있다.

  1. 문자열의 최초 문자를 남겨서 a,e,h,i,o,u,w,y의 문자가 나왔을 경우에는 모두 삭제한다.

  2. 남은 문자(첫 문자 후에)다음과 같이 숫자를 할당한다.

    b, f, p, v = 1
    c, g, j, k, q, s, x, z = 2
    d, t = 3
    l = 4
    m, n = 5
    r = 6
    
  3. 만약 같은 수치를 가지는 2개 이상의 문자가 오리지날 이름에서 인접해있거나(첫번째 스텝전) 또는 h와 w 사이의 문자를 제외하고 인접해 있다면, 최초 문자 이외의 모든 문자를 삭제한다.

  4. 0을 붙여서 최초의 4바이트를 반환한다.

char은 CHAR,VARCHAR2,NCHAR,NVARCHAR2 데이터 형이다. 반환되는 값은 char과 같은 데이터형이다.

이 함수는 CLOB데이터를 직접 지원하지 않는다. 다만, 암묵적인 데이터 변환을 통해서 인수로써 전달될수 있다.

예제

MAIN

다음 예제는 "Smyth"와 같은 음성 표현을 가지는 종업원을 반환한다.

SELECT last_name, first_name
     FROM hr.employees
     WHERE SOUNDEX(last_name)
         = SOUNDEX('SMYTHE');

LAST_NAME  FIRST_NAME
---------- ----------
Smith      Lindsey
Smith      William