Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nie można rozwiązać błędu - java.sql.SQLException:ORA-01000:przekroczono maksymalną liczbę otwartych kursorów

Jeśli próbujesz wykonać tę samą operację 1000 razy, radzę re-using ten sam PreparedStatement lub za pomocą addBatch() i executeBatch() kombinacja.

Jeśli planujesz ponownie użyć swojego PreparedStatement, oto co możesz zrobić:

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. Expdp ze środowiska Oracle RAC

  2. Tylko kopia zapasowa schematu SQL?

  3. Jakie są tabele BIN$... w tabeli Oracle ALL_TAB_COLUMNS?

  4. Jak zwrócić zestaw wyników/kursor z anonimowego bloku Oracle PL/SQL, który wykonuje Dynamic SQL?

  5. Wykonanie zapytania Oracle Ad Hoc z błędem parametrów powiązania; ORA-00907:brak prawego nawiasu