sql >> Databáze >  >> RDS >> Oracle

Nelze vyřešit chybu - java.sql.SQLException:ORA-01000:překročen maximální počet otevřených kurzorů

Pokud se pokoušíte provést stejnou operaci 1000krát, doporučuji re-using stejný PreparedStatement nebo pomocí addBatch() a executeBatch() kombo.

Pokud plánujete znovu použít svůj PreparedStatement, můžete udělat následující:

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. mysql vložte výsledek víceřádkového dotazu do tabulky

  2. ClusterControl - Pokročilá správa zálohování - mariabackup Část I

  3. Jak mohu zobrazit celý text dotazu vytvořeného PDO?

  4. Python psycopg2 cursor.fetchall() vrací prázdný seznam, ale cursor.rowcount je> 1