使用JDBC时,Postgresql中的Oracle REF CURSOR等效于什么?
时间:2020-03-05 19:00:02 来源:igfitidea点击:
在Oracle中,我可以声明一个引用游标...
TYPE t_spool IS REF CURSOR RETURN spool%ROWTYPE;
...并使用它传递游标作为返回值...
FUNCTION end_spool RETURN t_spool AS v_spool t_spool; BEGIN COMMIT; OPEN v_spool FOR SELECT * FROM spool WHERE key = g_spool_key ORDER BY seq; RETURN v_spool; END end_spool;
...然后使用JDBC将其捕获为结果集...
private Connection conn; private CallableStatement stmt; private OracleResultSet rset; [...clip...] stmt = conn.prepareCall("{ ? = call " + call + "}"); stmt.registerOutParameter(1, OracleTypes.CURSOR); stmt.execute(); rset = (OracleResultSet)stmt.getObject(1);
Postgresql中的等效项是什么?
解决方案
回答
也许这会有所帮助:http://jdbc.postgresql.org/documentation/83/callproc.html#callproc-resultset-setof
:P之前我还没有真正搞砸