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

ORA-00604:wystąpił błąd na rekurencyjnym poziomie SQL 1

Myślę, że PreparedStatement definicja powinna zostać wyciągnięta z pętli i ponownie wykorzystana w pętli, wywołując clearParameters :

pstatement = db_connection.prepareStatement(PDSLnPConstants.UPSERT_SQL); // create a statement

for (Entry<Integer, LinkedHashMap<Integer, String>> entry : GUID_ID_MAPPING.entrySet()) {

    pstatement.setInt(1, entry.getKey());
    pstatement.setString(2, entry.getValue().get(PDSLnPConstants.CGUID_ID));
    pstatement.setString(3, entry.getValue().get(PDSLnPConstants.PGUID_ID));
    pstatement.setString(4, entry.getValue().get(PDSLnPConstants.SGUID_ID));
    pstatement.setString(5, entry.getValue().get(PDSLnPConstants.UID_ID));
    pstatement.setString(6, entry.getValue().get(PDSLnPConstants.ULOC_ID));
    pstatement.setString(7, entry.getValue().get(PDSLnPConstants.SLOC_ID));
    pstatement.setString(8, entry.getValue().get(PDSLnPConstants.PLOC_ID));
    pstatement.setString(9, entry.getValue().get(PDSLnPConstants.ALOC_ID));
    pstatement.setString(10, entry.getValue().get(PDSLnPConstants.SITE_ID));
    pstatement.executeUpdate();

    pstatement.clearParameters();

}

Możesz także zbadać przetwarzanie wsadowe (addBatch ). Jeśli testujesz, może być konieczne trochę poczekania na wyczyszczenie istniejących „otwartych” kursorów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cofnij A, jeśli B pójdzie nie tak. wiosna boot, jdbctemplate

  2. Proces aktualizacji krok po kroku do aktualizacji R12.2 część -2 (główny sterownik aktualizacji dla R12.2.0)

  3. ORA-65139:Niezgodność między plikiem metadanych XML a plikiem danych

  4. Wdróż centrum danych Cloudera CDP w Oracle Cloud Infrastructure (OCI)

  5. Oracle Database TLS1.2 / połączenie SSL przy użyciu JDBC thin i JKS