Oracle
 sql >> Base de données >  >> RDS >> Oracle

Impossible de résoudre l'erreur - java.sql.SQLException :ORA-01000 :nombre maximal de curseurs ouverts dépassé

Si vous essayez d'effectuer la même opération 1000 fois, je vous conseille de re-using le même PreparedStatement ou en utilisant addBatch() et executeBatch() combiné.

Si vous envisagez de réutiliser votre PreparedStatement, voici ce que vous pouvez faire :

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
   }
 }
}