Во-первых, убедитесь, что класс org.apache.commons.codec.language.ColognePhonetic
находится в базе данных (вероятно, его не будет).
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_TYPE LIKE '%JAVA%'
AND LOWER( OBJECT_NAME ) LIKE '%colognephonetic%';
Должен возвращать строку, если она существует (возможно, ее необходимо запустить как привилегированный пользователь).).
Если его не существует, вам нужно будет использовать приложение loadjava
для загрузки библиотеки jar, содержащей классы.
Затем напишите обертку для создания статической функции, которая делаетэкземпляр класса ( непроверенный ):
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';