我执行以下代码:
CallableStatement cs;
cs = conn.prepareCall("{ ? = call mypackage.myfunc()}");
cs.registerOutParameter(1, OracleTypes.CURSOR);
System.out.println(cs.execute());
System.out.println(cs.getResultSet());
ResultSet rs = (ResultSet) cs.getObject(1);
System.out.println(rs);
该函数声明如下:
CREATE OR REPLACE PACKAGE BODY myuser.mypackage AS
FUNCTION myfunc
return sys_refcursor
is
a_cursor sys_refcursor;
begin
open a_cursor for select * from mytable;
return a_cursor;
end myfunc;
end mypackage;
/
根据该文件,如果有结果,那么cs.execute()将返回true和cs.getResultSet()将有一个值。 然而,这是输出I得到:
false
null
oracle.jdbc.driver.OracleResultSetImpl@b92a848
我使用Oracle快捷11.2.0和最新的驱动程序。
任何提示/解释/件事,试图将是非常欢迎的。
谢谢!