Trước tiên, hãy đảm bảo rằng org.apache.commons.codec.language.ColognePhonetic
lớp có trong cơ sở dữ liệu (có thể sẽ không có).
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_TYPE LIKE '%JAVA%'
AND LOWER( OBJECT_NAME ) LIKE '%colognephonetic%';
Sẽ trả về một hàng nếu nó tồn tại (có thể cần được chạy với tư cách người dùng đặc quyền).
Nếu nó không tồn tại thì bạn sẽ cần sử dụng loadjava
ứng dụng để tải thư viện jar chứa các lớp.
Sau đó, viết một trình bao bọc để tạo một hàm tĩnh tạo một thể hiện của lớp ( chưa được kiểm tra ):
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';