希望 JDBC 从 PostgreSql 12 函数中获取多个结果集。JDBC 版本 org.postgresql/postgresql/42.2.9。PostgreSql 函数在这里:
create or replace function test()
returns setof refcursor as $$
declare
ret1 refcursor;
ret2 refcursor;
begin
open ret1 for
select 10 as a;
return next ret1;
open ret2 for
select 20 as b;
return next ret2;
end; $$ language plpgsql;
Java代码是这样的:
stmt = getConnection().prepareCall("{ ? = call test() }");
stmt.registerOutParameter(1, Types.OTHER);
stmt.execute();
rs = (ResultSet)stmt.getObject(1);
if (rs.next()) {
int a = rs.getInt("a");
if (rs.next()) {
int b = rs.getInt("b");
}
}
“a”被成功检索,但第二个“rs.next()”返回 false。谷歌搜索了很多,但无法使其工作。如何获得第二个结果集?