sql >> Database teknologi >  >> RDS >> Oracle

ORA-00604:fejl opstod på rekursivt SQL niveau 1

Jeg tror, ​​at PreparedStatement definition skal trækkes ud af løkken og genbruges i løkken ved at kalde 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();

}

Du ønsker måske også at undersøge batchbehandling (addBatch ). Hvis du tester, skal du muligvis vente lidt på, at de eksisterende "åbne" markører bliver ryddet op.



  1. postgresql udtrække funktion kilde

  2. Top 5 datamodelleringsværktøjer til SQL Server

  3. filtrering af resultater efter to udvalgte muligheder

  4. En anden måde at forbedre SQL-forespørgslen på for at undgå forening?