gpt4 book ai didi

java - ORA-29531 : no method in class error

转载 作者:行者123 更新时间:2023-12-02 11:12:42 25 4
gpt4 key购买 nike

我尝试在 PL/SQl 中编写一个包装函数来调用 org.apache.commons.codec.language.colognephonetic 类的编码函数,如官方 apache commons wiki 上所述。 Cologne Phonetic Apache

包装函数如下所示:

  function get_phonetic_string(i_string VARCHAR2) RETURN VARCHAR2 AS LANGUAGE java name 'org.apache.commons.codec.language.ColognePhonetic.encode(
java.lang.String
) return java.lang.String';

但是,当我执行包装器函数时,出现以下错误:ORA-29531:类 org/apache/commons/codec/language/ColognePhonetic 中没有方法编码。但显然有一个编码功能。

有人可以帮我找出我做错了什么吗?

最佳答案

首先,确保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';

关于java - ORA-29531 : no method in class error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50507453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com