ORA-29531: class (java) 中没有方法
ORA-29531: no method in class (java)
我在 Oracle 的一个包中有一个 java 过程:
procedure pREPORTTEHMOG_java(dName varchar2, dFrame number, dSlot number, dPort number)
AS LANGUAGE java NAME 'REPORTTEHMOG_TEST.dovuciREPORTTEHMOG_TEST(java.lang.String,int,int,int)';
它的定义是这样的:
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED WIS."REPORTTEHMOG_TEST" AS import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
public class REPORTTEHMOG_TEST {
...
public static void dovuciREPORTTEHMOG_TEST(String dName, Integer dFrame, Integer dSlot, Integer dPort) throws Exception {
...
}
...
}
当我尝试这样调用过程时:
declare
begin
REPORT_TEHMOG.pREPORTTEHMOG_java('MA5818_Caic', 0, 1, 1);
end;
它抛出一个错误:
ORA-29531: no method dovuciREPORTTEHMOG_TEST in class REPORTTEHMOG_TEST
有人知道这个问题吗?
int
原语和the Integer
class不是一回事,所以你的声明与Java方法不匹配。应该是:
procedure pREPORTTEHMOG_java(dName varchar2, dFrame number, dSlot number, dPort number)
AS LANGUAGE java NAME 'REPORTTEHMOG_TEST.dovuciREPORTTEHMOG_TEST(java.lang.String,java.lang.Integer,java.lang.Integer,java.lang.Integer)';
或者 Java 参数 int
如果合适的话。
我在 Oracle 的一个包中有一个 java 过程:
procedure pREPORTTEHMOG_java(dName varchar2, dFrame number, dSlot number, dPort number)
AS LANGUAGE java NAME 'REPORTTEHMOG_TEST.dovuciREPORTTEHMOG_TEST(java.lang.String,int,int,int)';
它的定义是这样的:
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED WIS."REPORTTEHMOG_TEST" AS import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
public class REPORTTEHMOG_TEST {
...
public static void dovuciREPORTTEHMOG_TEST(String dName, Integer dFrame, Integer dSlot, Integer dPort) throws Exception {
...
}
...
}
当我尝试这样调用过程时:
declare
begin
REPORT_TEHMOG.pREPORTTEHMOG_java('MA5818_Caic', 0, 1, 1);
end;
它抛出一个错误:
ORA-29531: no method dovuciREPORTTEHMOG_TEST in class REPORTTEHMOG_TEST
有人知道这个问题吗?
int
原语和the Integer
class不是一回事,所以你的声明与Java方法不匹配。应该是:
procedure pREPORTTEHMOG_java(dName varchar2, dFrame number, dSlot number, dPort number)
AS LANGUAGE java NAME 'REPORTTEHMOG_TEST.dovuciREPORTTEHMOG_TEST(java.lang.String,java.lang.Integer,java.lang.Integer,java.lang.Integer)';
或者 Java 参数 int
如果合适的话。