sql >> Database >  >> RDS >> Oracle

Kan fout niet oplossen - java.sql.SQLException:ORA-01000:maximale open cursors overschreden

Als u dezelfde bewerking 1000 keer probeert uit te voeren, raad ik u aan re-using dezelfde PreparedStatement of gebruik addBatch() en executeBatch() combinatie.

Als u van plan bent uw PreparedStatement opnieuw te gebruiken, kunt u het volgende doen:

public void insertARow(PreparedStatement ps, ArrayList<String> row){
 //your code
}

public void calledMethod(){
 String insert = "INSERT INTO user.info(cola,colb) values(?,?)";
 PreparedStatement ps = null;

 try{
   ps = con.prepareStatement(insert);
   /**
    * Here you make the call to insertARow passing it the preparedstatement that you
    * have created. This in your case will be called multiple times.
    */
   insertARow(ps, row);
 }finally{
   if(ps != null){
     //close ps
   }
 }
}



  1. Meerdere MYSQL-query's versus meerdere php foreach-lussen

  2. Mysql FROM_UNIXTIME als UTC

  3. Index te zien (Oracle)

  4. Hoe voeg ik een stem toe aan mijn database in een formulier?