sql >> Databasteknik >  >> RDS >> Oracle

Det gick inte att lösa felet - java.sql.SQLEundantag:ORA-01000:maximala öppna markörer har överskridits

Om du försöker utföra samma operation 1 000 gånger rekommenderar jag att du återanvänder samma PreparedStatement eller med >addBatch() och executeBatch() kombo.

Om du planerar att återanvända ditt PreparedStatement, här är något du kan göra:

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. Castle Activecord-felet är "relationen existerar inte" på Postgresql?

  2. Hur skapar man ENUM i SQLAlchemy?

  3. Hur man tar bort en kolumn från en tabell i MySQL

  4. Så här kontrollerar du datumformatet för din Oracle-session