不使用静态方法从Oracle 11g调用Java
我道歉。再读一遍似乎有点傻。这里有两个问题。 这是代码。我试图从Oracle11g存储函数调用一个Java类,但得到一个00932错误,表示第一个位置的IN参数不一致。我将其简化了很多,以试图说明这个问题 第二部分是,只要Java函数被声明为静态,我就可以工作,但我不确定这种方法是否可行,因为将有多达1000个用户同时访问该函数,并且每个用户没有对象的实例。如果每个用户都有自己的会话空间,则不确定oracle在这种情况下如何处理内存 Oracle对象:不使用静态方法从Oracle 11g调用Java,java,oracle,methods,oracle11g,member,Java,Oracle,Methods,Oracle11g,Member,我道歉。再读一遍似乎有点傻。这里有两个问题。 这是代码。我试图从Oracle11g存储函数调用一个Java类,但得到一个00932错误,表示第一个位置的IN参数不一致。我将其简化了很多,以试图说明这个问题 第二部分是,只要Java函数被声明为静态,我就可以工作,但我不确定这种方法是否可行,因为将有多达1000个用户同时访问该函数,并且每个用户没有对象的实例。如果每个用户都有自己的会话空间,则不确定oracle在这种情况下如何处理内存 Oracle对象: CREATE OR REPLACE TYP
CREATE OR REPLACE TYPE MyObject AS OBJECT
(
col1Data VARCHAR2(10),
MEMBER FUNCTION createData
RETURN VARCHAR2 AS LANGUAGE JAVA
NAME 'MyObject.createData() return java.lang.String'
);
Java代码:
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "MyObject" AS
public class MyObject
{
private String col1Data;
public String createData ()
{
System.out.println ("col1: " + col1Data);
}
}
由此oracle函数调用
CREATE OR REPLACE FUNCTION fn_myobject
(col1 IN varchar2)
RETURN VARCHAR2
AS
p_rc varchar2(100);
myObj MyObject;
BEGIN
myObj := new MyObject(col1);
p_rc := myObj.createData(); -- this line gets a 00932 error
RETURN p_rc;
END;
再次感谢您,并为第一行的混淆感到抱歉。静态、成员、实例、变量、函数,但没有一行代码?请同时发布您的代码。