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

时间:2011-11-01 21:41:32

标签: java stored-procedures oracle11g

我一直在浏览与我的问题有关的论坛中的很多帖子,但我没有帮助我,所以我发布了我的问题。   我在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();
}
...

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

1 个答案:

答案 0 :(得分:1)

行。对不起我的错。我没有关闭BufferedWriter ......代码工作正常。