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

ओरेकल जेडीबीसी:कैसे पता चलेगा कि कौन सी पंक्ति अद्वितीय कुंजी बाधा फेंकती है?

एकमात्र तरीका (मुझे पता है) यह पता लगाने के लिए कि कौन सी पंक्ति समस्या का कारण बनती है, ओरेकल की "लॉग त्रुटियों में" सुविधा का उपयोग करना है। इस तरह insert कोई अपवाद नहीं फेंकेगा और किसी भी बाधा का उल्लंघन करने वाली कोई भी पंक्ति निर्दिष्ट त्रुटि तालिका में लिखी जाएगी।

ऐसा करने के लिए आपको सबसे पहले एक लॉग टेबल बनानी होगी जिसमें अस्वीकृत पंक्तियाँ हों:

EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG('BD_VEHICLES_TEMP');

इससे ERR$_BD_VEHICLES_TEMP . नाम की एक टेबल बनेगी

फिर रन करें अपना स्टेटमेंट इसमें बदलें:

insert into bd_vehicles_temp 
select * 
from bd_vehicles_temp_1
LOG ERRORS REJECT LIMIT UNLIMITED;

एक पंक्ति बाधाओं को मान्य करने में विफल होने पर भी कथन जारी रहेगा। विवरण समाप्त होने के बाद आप तालिका की सामग्री की जांच कर सकते हैं ERR$_BD_VEHICLES_TEMP उन पंक्तियों के लिए जिन्होंने त्रुटि संदेश और मानों सहित बाधा का उल्लंघन किया है।

(संपादित करें):यदि आप पहली त्रुटि पर रुकना चाहते हैं (और इसे लॉग तालिका में देखें), तो REJECT LIMIT UNLIMITED छोड़ दें खंड।

अधिक विवरण मैनुअल में हैं:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल पीएल/एसक्यूएल आईपीवी 6 सीडीआर के लिए रेंज आईपी की गणना कैसे करें

  2. मानों की सूची में, कई श्रेणियों के विरुद्ध मिलान की गई संख्याओं की सूची का अनुवाद करने के लिए SQL क्वेरी

  3. विभिन्न स्कीमाओं के माध्यम से कैसे लूप करें और प्रत्येक पर कुछ एसक्यूएल निष्पादित करें?

  4. PowerShell में SQL प्लस स्क्रिप्ट कैसे चलाएं

  5. Oracle XStream को कॉन्फ़िगर करना