Stellen Sie zunächst sicher, dass org.apache.commons.codec.language.ColognePhonetic
Klasse ist in der Datenbank (wahrscheinlich nicht).
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_TYPE LIKE '%JAVA%'
AND LOWER( OBJECT_NAME ) LIKE '%colognephonetic%';
Sollte eine Zeile zurückgeben, falls vorhanden (muss möglicherweise als privilegierter Benutzer ausgeführt werden).
Wenn es nicht existiert, müssen Sie loadjava
verwenden Anwendung zum Laden der JAR-Bibliothek mit den Klassen.
Schreiben Sie dann einen Wrapper, um eine statische Funktion zu erstellen, die eine Instanz der Klasse erstellt (ungetestet ):
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';