【发布时间】:2011-01-21 10:43:39
【问题描述】:
给定以下使用 loadjava 加载到数据库中的 Java:
package grassie.example;
public class Example {
public static String test(){
return "Hello World!";
}
}
并给出以下 Oracle 存储函数:
CREATE OR REPLACE FUNCTION TEST_FUNCTION RETURN VARCHAR2
AS LANGUAGE JAVA
NAME 'grassie.example.Example.test() RETURN java.lang.String';
为什么函数无法编译并出现以下错误?:
Error(3,1): PLS-00311: the declaration of "grassie.example.Example.test() RETURN java.lang.String" is incomplete or malformed
Oracle 客户端是 9.2.0.8.0,数据库是 9.2.0.8.0。使用 SQL Developer 2.1.0.63
编辑:根据以下答案修改了我的问题。
为了进一步澄清,我创建了这个简单的测试类和函数,因为我遇到了更复杂的 Java 和存储函数的问题,它们接受和返回各种参数类型。
【问题讨论】:
-
在我的
XE安装中没有Java,但是AFAIK,Java 关键字应该是小写的。尝试在NAME子句中将RETURN替换为return。 -
@Quassnoi 请回复完整的答案,所以我对此表示赞赏:)
标签: oracle java-stored-procedures