ORA-30926 त्रुटियों का निवारण कैसे करें? (डॉक आईडी 471956.1)
1) असफल बयान को पहचानें
परिवर्तन सत्र सेट की घटनाएं '30926 ट्रेस नाम त्रुटि स्तर 3';
या
परिवर्तन प्रणाली सेट की घटनाओं '30926 ट्रेस नाम त्रुटि बंद';
और UDUMP में .trc फ़ाइलों के लिए देखें जब यह होता है।
2) एसक्यूएल स्टेटमेंट को प्राप्त करने के बाद, जांचें कि क्या यह सही है (शायद क्वेरी प्लान को जांचने के लिए स्पष्टीकरण योजना या tkprof का उपयोग करके) और संबंधित टेबलों पर आँकड़ों का विश्लेषण या गणना करें यदि यह हाल ही में नहीं किया गया है। पुन: निर्माण (या ड्रॉपिंग / रिक्रूटिंग) इंडेक्स भी मदद कर सकते हैं।
३.१) एसक्यूएल स्टेटमेंट एक MERGE है? यह सुनिश्चित करने के लिए कि डुप्लिकेट में कोई डुप्लिकेट मान नहीं हैं, यह सुनिश्चित करने के लिए USING क्लॉज द्वारा दिए गए डेटा का मूल्यांकन करें। एक निर्धारक को शामिल करने के लिए मर्ज कथन को संशोधित करें जहां खंड
3.2) क्या यह एक दृश्य के माध्यम से अद्यतन है? यदि ऐसा है, तो दृश्य परिणाम को तालिका में बदलने का प्रयास करें और तालिका को सीधे अपडेट करने का प्रयास करें।
3.3) क्या टेबल पर कोई ट्रिगर है? यह देखने के लिए अक्षम करने का प्रयास करें कि क्या यह अभी भी विफल रहता है।
३.४) क्या कथन में 'IN-Subquery' में एक गैर-विलयवादी दृश्य है? इसका परिणाम यह हो सकता है कि डुप्लिकेट पंक्तियों को लौटाया जा सकता है यदि क्वेरी में "FORDATE" खंड है। बग 2681037 देखें
3.5) क्या तालिका में अप्रयुक्त स्तंभ हैं? इन्हें छोड़ने से त्रुटि को रोका जा सकता है।
4) यदि एसक्यूएल को संशोधित करने से त्रुटि ठीक नहीं होती है, तो समस्या तालिका के साथ हो सकती है, खासकर यदि पंक्तिबद्ध पंक्तियाँ हों। 4.1) SQL में प्रयुक्त सभी तालिकाओं पर 'ANALYZE TABLE VALIDATE STRUCTURE CASCADE' कथन को यह देखने के लिए चलाएँ कि क्या तालिका या उसके अनुक्रमणिका में कोई भ्रष्टाचार हैं या नहीं। ४.२) टेबल पर किसी भी CHAINED या माइग्रेटेड ROWS के लिए जाँच करें और समाप्त करें। इसे कम करने के तरीके हैं, जैसे कि PCTFREE की सही सेटिंग। नोट 122020.1 का उपयोग करें - पंक्ति जंजीर और प्रवासन 4.3) यदि तालिका अतिरिक्त रूप से अनुक्रमणित की गई है, तो देखें: नोट 102932.1 - आईओटी पर जंजीर पंक्तियों की निगरानी