[英]java.sql.SQLException: Exhausted Resultset
我收到错误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),该操作相同。
当数据库没有针对特定条件返回的记录时,以及当我尝试访问rs.getString(1)时; 我收到此错误“筋疲力尽的结果集”。
在发行之前,我的代码是:
rs.next();
sNr= rs.getString(1);
修复后:
while (rs.next()) {
sNr = rs.getString(1);
}
在while循环外使用ResultSet时,将发生此异常。 请将所有与ResultSet相关的处理保持在While循环内。
当重用stmt但期望使用不同的ResultSet时,通常会发生这种情况,请尝试创建新的stmt和executeQuery。 它为我解决了!
请确保res.getInt(1)不为null。 如果可以为null,则使用Integer count = null; 而不是int count = 0;
Integer count = null;
if (rs! = null) (
while (rs.next ()) (
count = rs.getInt (1);
)
)
错误背后的问题:如果您尝试访问Oracle数据库,则在事务成功完成之前,您将无法访问插入的数据;要完成事务,您必须在将数据插入表中之后触发commit
查询。 因为默认情况下Oracle数据库不处于自动提交模式。
解:
转到SQL PLUS并遵循以下查询。
SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 28 15:29:43 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Enter user-name: scott
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> desc empdetails;
Name Null? Type
----------------------------------------- -------- ----------------------------
ENO NUMBER(38)
ENAME VARCHAR2(20)
SAL FLOAT(126)
SQL> insert into empdetails values(1010,'John',45000.00);
1 row created.
SQL> commit;
Commit complete.
之所以收到此错误,是因为您在resultSet.next()方法之前使用了resultSet。
要获得计数,只需使用以下命令:
while(rs.next())`{count = rs.getInt(1); }
您将得到结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.