ओरा -06512 त्रुटियों को कैसे ठीक करें

रीडर प्रश्न समय फिर से। इस बार ओरेकल सवाल और 'अगर आप ओआरए-06512 त्रुटियों को देखते हैं तो क्या करना है'। मुझे यह स्वीकार करना होगा कि ओरेकल मेरी बात नहीं है लेकिन मुझे एक दोस्ताना डीबीए पता है जो ओरेकल के अंदर रहता है और कॉफी के एक बड़े कप के बदले में इस सवाल का जवाब देने में मेरी मदद करने के लिए तैयार था।

ओरेकल एक डेटाबेस प्रबंधन प्रणाली है जो विभिन्न रूपों में चालीस वर्षों तक रही है। मूल रूप से ओआरकल के मूल कर्मचारियों में से एक के नाम पर एससीओटीटी स्कीमा नामक कुछ का इस्तेमाल किया जाता था। आपने उपयोगकर्ता नाम 'स्कॉट' और पासवर्ड 'बाघ' के साथ पहली बार ओरेकल में भी लॉग इन किया जिसका नाम स्कॉट की बिल्ली के नाम पर रखा गया है। अब आप ओरेकल के उपयोग के आधार पर कई स्कीमा का उपयोग करते हैं।

यदि आप ओरेकल के बारे में अधिक जानना चाहते हैं, तो यह पृष्ठ बहुत उपयोगी है।

Ora-06512 त्रुटियों को ठीक करना

जाहिर है, एक ओरा -06512 त्रुटि एक सामान्य अपवाद त्रुटि है जो आपको बताती है कि कुछ गलत हो रहा है, न कि क्या गलत हो रहा है।

उदाहरण के लिए, त्रुटि वाक्यविन्यास पढ़ सकता है:

ओआरए -01422: सटीक fetch पंक्तियों की अनुरोधित संख्या से अधिक देता है

ओआरए -06512: "DATABASE_NAME" पर, लाइन 66

ओआरए-06512: लाइन 1 पर

पहली पंक्ति आपको बताती है कि किस प्रकार की त्रुटि हो रही है, इस मामले में, क्वेरी क्वेरी की तुलना में अधिक डेटा लौटा रही है, इसलिए यह नहीं जानता कि इसे कैसे संभाला जाए। 'ओआरए -01422' कोड वास्तविक त्रुटि कोड है जिसे आपको देखने की आवश्यकता है। ओआरए -06512 सिर्फ सामान्य त्रुटि कोड है।

दूसरी पंक्ति आपको बताती है कि त्रुटि कहां हो रही है। उस समय DATABASE_NAME जो भी डेटाबेस आप काम कर रहे हैं वह होने जा रहा है। रेखा 66 वह रेखा है जहां त्रुटि हो रही है और वह त्रुटि है जिसे आपको त्रुटि को सही करने के लिए जांचने की आवश्यकता है।

त्रुटि वाक्यविन्यास में तीसरी पंक्ति आपको बताती है कि कॉल कहां से आता है। लाइन एक की जांच करें और आपको DATABASE_NAME पर एक कॉल दिखाई देगी।

इस त्रुटि को ठीक करने के लिए, आपको ORA-01422 के कारण होने वाली समस्या को ठीक करने की आवश्यकता है, जो 'पंक्तियों की अनुरोधित संख्या से अधिक सटीक फ़ेच रिटर्न' है या आपको इसे अनदेखा करने के लिए ओरेकल को बताने के लिए अपवाद हैंडलर जोड़ने की आवश्यकता है। मुख्य मुद्दे को ठीक करने के रूप में हमेशा बेहतर है, यह जाने का रास्ता है।

दो चीजें हैं जो आप कर सकते हैं। यदि आप क्वेरी को एक पंक्ति से अधिक लौटने की उम्मीद करते हैं, तो आप इसे संशोधित कर सकते हैं ताकि यह आश्चर्यचकित न हो। यदि आप केवल एक पंक्ति को वापस करने की क्वेरी की अपेक्षा करते हैं, तो आप इसके लिए भी इसे संशोधित कर सकते हैं।

एक पंक्ति से अधिक की अपेक्षा:

एक्स के लिए (टी से चुनें * कहां ...)

पाश

- एक्स रिकॉर्ड को यहां संसाधित करें

अंत लूप;

यह डेटाबेस क्वेरीज़ में त्रुटि को खत्म कर देना चाहिए जहां एक से अधिक पंक्ति लौटा दी जाएगी।

यदि आप केवल एक पंक्ति को वापस करने की उम्मीद करते हैं, तो आप कोशिश कर सकते हैं:

शुरू

* में चुनें ...।

टी से कहां ...।

प्रक्रिया ...।

अपवाद

जब NO_DATA_FOUND तब

कोई रिकॉर्ड नहीं मिलने पर त्रुटि हैंडलिंग कोड

जब TOO_MANY_ROWS तब

त्रुटि रिकॉर्डिंग कोड जब बहुत सारे रिकॉर्ड पाए जाते हैं

समाप्त;

इस दूसरी विधि को 'ओआरए -01422 फेंकने के बिना केवल एक पंक्ति प्रदान करनी चाहिए: सटीक फ़ेच अनुरोध पंक्तियों की संख्या से अधिक लौटाता है' और इसलिए मूल ORA-06512 त्रुटि।

आप क्वेरी को भी ट्विक कर सकते हैं ताकि यह केवल एकाधिक पंक्ति उत्तर की पहली पंक्ति लौटा सके। यह काम कर सकता है यदि आपके पास डेटाबेस पर पूर्ण नियंत्रण नहीं है या आप चीजों के साथ गड़बड़ नहीं करना चाहते हैं लेकिन अभी भी एक जवाब की आवश्यकता है।

घोषित

टी से चयन * के लिए सी 1 कर्सर जहां ...

शुरू

खुला सी 1;

सी 1 लाने के लिए ..

अगर (सी 1% अधिसूचित) तो

कोई रिकॉर्ड नहीं मिला त्रुटि त्रुटि

अगर अंत;

बंद सी 1;

समाप्त;

मुझे इस अंतिम कार्रवाई को कार्रवाई में नहीं मिला लेकिन मुझे आश्वासन दिया गया है कि परिस्थितियों में जहां एकाधिक रिटर्न मिल सकते हैं लेकिन आप केवल एक पंक्ति वापसी चाहते हैं और कोई त्रुटि नहीं है, यह काम करेगा।

मुझे एक छोटा सा एसक्यूएल पता है, जो बुनियादी चयन कथन लिखने के लिए पर्याप्त है लेकिन मुझे स्वीकार करना होगा कि ओरेकल ने मुझे फेंक दिया। भले ही यह पीएल / एसक्यूएल है, वही है, मैंने खुद को खो दिया। पीएल / एसक्यूएल ओरेकल की प्रक्रियात्मक भाषा विस्तार एसक्यूएल है जो स्पष्ट रूप से इसे वेनिला एसक्यूएल की तुलना में कई और चालाक चीजें करने की अनुमति देता है। ओरेकल के बारे में जानने की कोशिश करते समय मैंने यह पीएल / एसक्यूएल अकसर किये गए सवाल उपयोगी पाया, यह आपकी भी मदद कर सकता है।

जैसा कि मैंने पहले उल्लेख किया है, मैं कोई डीबीए नहीं हूं और विशिष्ट डेटाबेस के बारे में बहुत कम जानता हूं। मैंने यह बताने के लिए अपनी पूरी कोशिश की है कि मेरे दोस्त ने मुझे अपने डेस्क और बाद के ईमेल में अपने संक्षिप्त समय के दौरान क्या दिखाया। अगर मुझे कुछ भी गलत हो गया है, तो मुझे टिप्पणी अनुभाग में बताएं।

यह भी देखना