Invalid operation: result set closed

When my result data is large, I get an com.ibm.db2.jcc.am.SqlException: [jcc][t4][10120][10898][4.9.78] Invalid operation: result set is closed. ERRORCODE=-4470, SQLSTATE=nullexception, but not when I try with less data in the results

Below is my code snippet

ResultSet rs=null;
String sql_query="select * from exception_main;select * from m_roles"
String query1=sql_query.toUpperCase();
String[] results=query1.split(";");         
CSVWriter writer = new CSVWriter(new FileWriter(csv_file_path + csv_file_name), ',',CSVWriter.NO_QUOTE_CHARACTER);                     
for(int i=0;i<results.length;i++)                         
{                             
  if(results[i].startsWith("SELECT"))                             
  {                                 
    System.out.println("Inside select"+ results[i]);                             

    ps = conn1.prepareStatement(results[i].toString());                             
    rs = ps.executeQuery();             

    ...                        

    //writing to csv file                          
    System.out.println("Count..." + rs.getRow());                        
    writer.writeAll(rs, true);                         

    while(rs.next()){                                  
      rs.deleteRow();                                
    }                          
    System.out.println("Count...3:::::::" + rs1.getRow());     
  }     
}
writer.close(); 
rs.close();
+5
source share
2 answers

Keep

stmt = conn1.createStatement(); 

before the for loop.

+10
source

From Java docs :

The ResultSet object is automatically closed by the Statement object, which generated it when this Statement object is closed, re-executed, or used to extract the next result from the sequence of several results.

Therefore, your mistake.

Your stmtStatement object is repeated every time in your loop for.

, :

, 1- ResultSet, , autoCommit, . , ResultSet , .


EDIT:

( OP - . ) - : ResultSet for. . ResultSet , Statement . Statement, for.

+7

All Articles