
El bloque de funciones SOUNDEX calcula la similitud fonética de una cadena de caracteres.
Los valores Soundex tienen la propiedad de que las palabras pronunciadas de manera similar generan el mismo valor Soundex. Esto puede usarse para buscar en bases de datos cuando se conoce la pronunciación pero no la escritura exacta. La función Soundex devuelve una cadena de cuatro caracteres, comenzando con una letra.
La entrada define la cadena de caracteres a calcular.
Devuelve una cadena de caracteres con el código Soundex.
Cada código Soundex consta de una letra seguida de tres dígitos, por ejemplo, A532 para Antcas. Si la palabra a codificar tiene tantos caracteres que se podrían generar más dígitos, se corta después del tercer dígito. Si la palabra tiene muy pocos caracteres, se rellenan los últimos dígitos con ceros. Por lo tanto, el nombre asiático Lee se codifica como L000.
| Dígito | Letras representadas |
|---|---|
| 1 | B, F, P, V |
| 2 | C, G, J, K, Q, S, X, Z |
| 3 | D, T |
| 4 | L |
| 5 | M, N |
| 6 | R |
Las vocales A, E, I, O y U y las consonantes H, W y Y deben ignorarse, excepto en el primer carácter. Además, para el idioma alemán se puede definir: las vocales con diacríticos Ä, Ö y Ü deben ignorarse, la "S" con diacrítico ß se codifica como la simple S.
Si varios caracteres consecutivos en la cadena original tienen el mismo código Soundex, este aparece solo una vez en el resultado; de abfx se obtiene aproximadamente A120 (a permanece porque es la primera letra, b y f dan ambos el mismo código 1, x da 2, al final se añade un cero para obtener cuatro caracteres).
En la aplicación práctica del procedimiento Soundex, principalmente dos puntos son criticados: por un lado, está muy orientado al idioma inglés, y por otro lado, solo ofrece un análisis muy grosero.
Aun así, cabe destacar que el algoritmo representado probablemente sea el más utilizado para la búsqueda fonética. A esto ha contribuido sin duda el hecho de que ya desde muy temprano se implementó un comando estándar correspondiente PL/SQL en la base de datos Oracle.