Primero, asegúrese de que org.apache.commons.codec.language.ColognePhonetic
la clase está en la base de datos (probablemente no lo estará).
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_TYPE LIKE '%JAVA%'
AND LOWER( OBJECT_NAME ) LIKE '%colognephonetic%';
Debería devolver una fila si existe (es posible que deba ejecutarse como un usuario privilegiado).
Si no existe, deberá usar loadjava
aplicación para cargar la biblioteca jar que contiene las clases.
Luego escriba un contenedor para crear una función estática que haga una instancia de la clase (no probada ):
CREATE JAVA SOURCE NAMED Phonetics AS
import org.apache.commons.codec.language.ColognePhonetic;
public class Phonetics {
public static String encode(
final String text
){
final ColognePhonetic cp = new ColognePhonetic();
return cp.encode( text );
}
}
/
CREATE FUNCTION get_phonetic_string(i_string VARCHAR2) RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'Phonetics.encode( java.lang.String ) return java.lang.String';