sql >> Database >  >> RDS >> Oracle

ORA-00604:fout opgetreden op recursief SQL-niveau 1

Ik denk dat de PreparedStatement definitie moet uit de lus worden gehaald en binnen de lus opnieuw worden gebruikt door clearParameters . aan te roepen :

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();

}

U kunt ook batchverwerking onderzoeken (addBatch ). Als u aan het testen bent, moet u mogelijk even wachten totdat de bestaande "open" cursors zijn opgeschoond.



  1. mySQL blob-afbeeldingen afdrukken?

  2. Wat zijn de voor- en nadelen van het bewaren van SQL in Stored Procs versus Code?

  3. Orakel:LANG of CLOB?

  4. Voeg meerdere rijen in één tabel in op basis van het aantal in een andere tabel