Want JDBC to get multiple result-sets from PostgreSql 12 function. JDBC version org.postgresql/postgresql/42.2.9. The PostgreSql function is here:
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 code is like this:
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" is successfully retrieved, but the second "rs.next()" returns false. Googled a lot but couldn't make it work. How can I get the 2nd result-set?