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); ) )