Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-00604:पुनरावर्ती SQL स्तर 1 पर त्रुटि हुई

मुझे लगता है कि PreparedStatement परिभाषा को लूप से बाहर निकाला जाना चाहिए और 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();

}

आप बैच प्रोसेसिंग की जांच भी कर सकते हैं (addBatch ) यदि आप परीक्षण कर रहे हैं, तो मौजूदा "खुले" कर्सर को साफ करने के लिए आपको थोड़ा इंतजार करना पड़ सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या अद्यतन के लिए चयन पंक्ति मौजूद नहीं होने पर अन्य कनेक्शन डालने से रोकता है?

  2. Oracle डेटाबेस 19c में आर्काइव लॉग मोड को कैसे इनेबल करें?

  3. पीएल/एसक्यूएल एक सीएलओबी को क्वेरी परिणाम असाइन कर रहा है

  4. संग्रह विधि:Oracle डेटाबेस में LIMIT फ़ंक्शन

  5. Oracle - किसी अन्य तालिका के कॉलम के समूह में न्यूनतम मान वाली पंक्तियों को अपडेट करें