Reputation: 101
I'm facing the problem with this exception java.sql.SQLException: Exhausted Resultset in following code. I'm sure my query returns only one value. Even If I don't use rs.next(); it throws the error java.sql.SQLException: ResultSet.next was not called. Could you please help?
FYI, I'm using the another result set in main where this menthod from another class is called. will it affect?
Thanks
public static String getdispname(Connection conn, String resname)
throws SQLException, Exception {
//String resname = "";
String returnValue = "";
String querystring = "";
//Query to select the displayname from resid
querystring += "select distinct display_name";
querystring += " from cust_rally_team_member";
querystring += " where display_name like '%"+ resid +"%'";
// Create select statement
Statement stmt = conn.createStatement();
try {
// Execute statement
ResultSet rs = stmt.executeQuery(querystring);
if (rs!= null) {
while (rs.next()) {
returnValue = rs.getString("display_name");
} catch (SQLException ex) {
throw new SQLException(ex);
} catch (Exception ex) {
throw new Exception(ex);
}
// Close statement
finally {
stmt.close();
}
return returnValue;
Upvotes: 3
Views: 29493
Reputation: 1252
I am using Oracle 10g database , i found same error "java.sql.SQLException: Exhausted Resultset error". I just grant permission in database and solved my probblem.
SQL> grant insert,update,delete on "table-name" to "database_name";
Upvotes: 0
Reputation: 3058
Try:
returnValue = rs.next() ? rs.getString("display_name") : null;
You don't need to check if the rs
is null. It won't be - assuming the executeQuery()
returned rather than raising an exception. (Though the returned result set might have 0 rows).
You also don't need to loop over the result set, assuming you really know that you expect back a single row. (Though, given the query, that seems unlikely.)
Upvotes: 1
Reputation: 2732
use by your modification like below
if (rs != null && rs.first()) {
do {
returnValue = rs.getString(("display_name");
} while (rs.next());
}
Upvotes: 0
Reputation: 14741
Try as
if (rs! = null) {
while (rs.next()) {
returnValue = rs.getString("display_name");
}
......
Upvotes: 5