Oracle
 sql >> база данни >  >> RDS >> Oracle

Грешка не може да бъде разрешена - java.sql.SQLException:ORA-01000:превишен е максималния брой отворени курсори

Ако се опитвате да извършите една и съща операция 1000 пъти, бих ви препоръчал re-using същият PreparedStatement или чрез addBatch() и executeBatch() комбо.

Ако планирате да използвате повторно своя PreparedStatement, ето нещо, което можете да направите:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сравнение между редове в една и съща таблица в Oracle

  2. javax.persistence.EntityExistsException с SequenceGenerator

  3. Попълване на PL/SQL таблица от блок в Oracle D2k Forms

  4. Как да прехвърлите масив от низове от C# към съхранена процедура на Oracle

  5. ActiveMQ 5.8:Не може да се зареди клас JDBC драйвер „oracle.jdbc.driver.OracleDriver“