java - 从 Java 中的 Oracle 存储过程获取结果集

标签 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();
}
...

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

最佳答案

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

关于java - 从 Java 中的 Oracle 存储过程获取结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7973284/

相关文章:

mysql - 在输入变量数组上插入值

php - 需要帮忙!我无法使用 codeigniter 在 oracle 11g 中连接我的程序

refcursor 上的 java.sql.SQLSyntaxErrorException : ORA-01722: invalid number while resultSet. next() 我不明白为什么?

java - Hibernate 5.0.1 将 PostGIS 数据存储为字节而不是空间类型

jpa - 如何使用 EclipseLink (JPA) 调用 Oracle 存储过程

java - NestedScrollView 未显示在 AlertDialog 中

php - SET NOCOUNT ON 在 ubuntu 下不起作用

sql - P/L SQL 中如何只转首字母大写其他字母小写?

java - java中String.intern()的用途

java - Eclipse OnClickListener MainActivity 错误