如何从 Java JDBC 中的 callableStatement 获取滚动不敏感的结果集?
Posted
技术标签:
【中文标题】如何从 Java JDBC 中的 callableStatement 获取滚动不敏感的结果集?【英文标题】:How to obtain an scroll_insensitive resultSet from a callableStatement in Java JDBC? 【发布时间】:2009-12-16 00:30:39 【问题描述】:我在 Oracle 10g 数据库中有一个存储过程,在我的 java 代码中,我调用它:
CallableStatement cs = bdr.prepareCall("Begin ADMBAS01.pck_basilea_reportes.cargar_reporte(?,?,?,?,?); END;", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
cs.setInt(1, this.reportNumber);
cs.registerOutParameter(2, OracleTypes.CURSOR);
cs.registerOutParameter(3, OracleTypes.INTEGER);
cs.registerOutParameter(4, OracleTypes.VARCHAR);
cs.setDate(5, new java.sql.Date(this.fecha1.getTime()));
cs.execute();
ResultSet rs = (ResultSet)cs.getObject(2);
我确实获得了一个包含正确记录的 ResultSet,但是当我尝试“scroll_insensitive - only”操作时(如 absolute(1) )。我不断收到一个 SQLException,指出它不适用于 FORWARD only resultSet。
那么我怎样才能获得这个带有 scroll_insensitive 功能的 ResultSet 呢?
提前致谢。
【问题讨论】:
【参考方案1】:结果集类型只是给驱动程序的一个建议,如果它不能遵守,驱动程序可以忽略或降级为 FORWARD_ONLY。详情请见here。
【讨论】:
感谢您的链接,我已经检查了对结果集类型的限制,这似乎不是唯一的问题。我已将查询更改为更简单的查询,只是为了尝试并且我不断得到相同类型的结果集。以上是关于如何从 Java JDBC 中的 callableStatement 获取滚动不敏感的结果集?的主要内容,如果未能解决你的问题,请参考以下文章