java.sql.SQLException:用尽的结果集

我得到错误java.sql.SQLException:Exhausted ResultSet对Oracle数据库运行查询。 连接通过Websphere中定义的连接池。 执行的代码如下所示:

if (rs! = null) ( while (rs.next ()) ( count = rs.getInt (1); ) ) 

我注意到结果集包含数据(rs.next())

谢谢

我在处理结果集后尝试访问列值时看到这个错误。

 if (rs! = null) { while (rs.next()) { count = rs.getInt(1); } count = rs.getInt(1); //this will throw Exhausted resultset } 

希望这会帮助你:)

尝试这个:

 if (rs != null && rs.first()) { do { count = rs.getInt(1); } while (rs.next()); } 

如果你把结果集重置到顶部,使用rs.absolute(1)你将不会得到穷举的结果集。

 while (rs.next) { System.out.println(rs.getString(1)); } rs.absolute(1); System.out.println(rs.getString(1)); 

你也可以使用rs.first()而不是rs.absolute(1),它也是一样的。

这通常发生在stmt重用butexpecting不同的ResultSet时,尝试创build一个新的stmt和executeQuery。 它为我修好了!

当没有logging从数据库返回一个特定的条件,当我试图访问rs.getString(1); 我得到了这个错误“枯竭的结果集”。

在问题之前,我的代码是:

 rs.next(); sNr= rs.getString(1); 

修复之后:

 while (rs.next()) { sNr = rs.getString(1); } 

当在while循环之外使用ResultSet时,会发生此exception。 请在While循环中保留与ResultSet相关的所有处理。

请使res.getInt(1)不为null。 如果可以为null,则使用Integer count = null; 而不是int count = 0;

 Integer count = null; if (rs! = null) ( while (rs.next ()) ( count = rs.getInt (1); ) )