如何从Java JDBC中的callableStatement获取scroll_ennsitive resultSet?

时间:2009-12-16 00:30:40

标签: jdbc oracle10g resultset

我在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,但是当我尝试“仅滚动敏感”操作时(如绝对(1))。我一直得到一个SQLException,声明它不能仅在FORWARD上运行resultSet。

那么如何使用scroll_insensitive功能获得此ResultSet?

先谢谢。

1 个答案:

答案 0 :(得分:1)

结果集类型仅仅是对驱动程序的建议,如果驱动程序无法遵守,则驱动程序可以忽略或降级为FORWARD_ONLY。有关详细信息,请参阅here