从Java中的Oracle存储过程中获取ResultSet

我一直在浏览论坛中与我的问题相关的很多post,但我没有帮助我,所以我发布了我的问题。 我在Oracle(11g)中有一个SP,它被假定为返回结果集。 SP如下所示:

CREATE OR REPLACE PROCEDURE testProc ( tableName IN VARCHAR2, INFORMATION OUT SYS_REFCURSOR ) AS sqlQuery varchar2(1000); BEGIN sqlQuery := 'SELECT ID||''|''||Name||''|''||Surname FROM '||tableName; OPEN INFORMATION FOR sqlQuery; END GETVALIDATIONPECLOG; 

我从java中调用它的方式是

 ... CallableStatement cs = null cs = connection.prepareCall("{call getvalidationpeclog(?,?)}"); cs.setString(1, table); cs.registerOutParameter(2, OracleTypes.CURSOR); System.out.println("AS: " + cs.execute()); //Returns false rs = (ResultSet) cs.getObject(2); while (rs.next()) { bw.write(rs.getString(1)); bw.newLine(); } ... 

但猜猜怎么了? 它根本不起作用……我错过了什么? 谢谢 !

好。 对不起我的错。 我没有关闭BufferedWriter ……代码工作得很好。