डेटाबेस mavens रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (DBMS) दुनिया में Oracle नाम को एक पावरहाउस के रूप में मान्यता देगा। ओरेकल ने दशकों तक उच्च-शक्ति वाले डीबीएमएस समाधान का उत्पादन किया है और क्षेत्र में अग्रणी बना हुआ है। डेटाबेस उत्पादों के कई अंत-उपयोगकर्ता भ्रमित या चकित हो सकते हैं जब वे एक पूर्वनिर्धारित समाधान का उपयोग कर रहे हैं और यह एक त्रुटि संदेश उत्पन्न करता है। Oracle द्वारा निर्मित एक सामान्य त्रुटि संदेश ORA-06512 त्रुटि है।
हमारा लेख भी देखें ओरा-00942 त्रुटि कैसे ठीक करें
Oracle एक डेटाबेस प्रबंधन प्रणाली है जो विभिन्न रूपों में लगभग चालीस वर्षों से है। यह मूल रूप से SCOTT स्कीमा नामक कुछ का उपयोग करता था, जिसका नाम ओरेकल के मूल कर्मचारियों में से एक के नाम पर रखा गया था। आपने पहली बार उपयोगकर्ता नाम 'स्कॉट' और पासवर्ड 'टाइगर' के साथ ओरेकल में लॉग इन किया, जो स्कॉट की बिल्ली के नाम पर है। अब आप के लिए Oracle का उपयोग करने के आधार पर कई स्कीमा का उपयोग किया जाता है।
यदि आप जमीन से Oracle के बारे में और अधिक जानना चाहते हैं, तो यह पृष्ठ बहुत उपयोगी है।
ORA-06512 त्रुटियों को ठीक करना
ओरेकल में, एक ORA-06512 त्रुटि एक सामान्य अपवाद त्रुटि है जो आपको बताती है कि कुछ गलत हो रहा है। यह ओरेकल द्वारा निर्मित कम से कम विशिष्ट त्रुटियों में से एक है, क्योंकि यह आपको केवल यह बताता है कि कोई समस्या है, लेकिन वह नहीं जो गलत हो रहा है।
उदाहरण के लिए, एक विशिष्ट त्रुटि संदेश पढ़ सकता है:
"ORA-01422: पंक्तियों की अनुरोधित संख्या की तुलना में अधिक सटीक रिटर्न मिलता है
ORA-06512: "DATABASE_NAME" पर, पंक्ति 66
ORA-06512: पंक्ति 1 12 पर
पहली पंक्ति आपको बताती है कि किस प्रकार की त्रुटि हो रही है, इस मामले में, क्वेरी अपेक्षा से अधिक डेटा लौटा रही है, इसलिए यह नहीं पता है कि इसे कैसे संभालना है। 'ORA-01422' कोड वास्तविक त्रुटि कोड है जिसे आपको देखने की आवश्यकता है। ORA-06512 केवल सामान्य त्रुटि कोड है।
दूसरी पंक्ति आपको बताती है कि त्रुटि कहां हो रही है। DATABASE_NAME उस समय जो भी डेटाबेस आप काम कर रहा है, वह होने जा रहा है। पंक्ति 66 वह रेखा है जहां त्रुटि हो रही है और वह पंक्ति है जिसे आपको त्रुटि को ठीक करने के लिए जांचने की आवश्यकता है।
त्रुटि सिंटैक्स में तीसरी पंक्ति आपको बताती है कि कॉल कहां से आता है। लाइन एक की जांच करें और आपको DATABASE_NAME पर कॉल दिखाई देगी।
इस विशेष त्रुटि को ठीक करने के लिए, आपको ORA-01422 के कारण होने वाली समस्या को ठीक करना होगा, जो 'पंक्तियों की अनुरोधित संख्या से अधिक सटीक रिटर्न' है या आपको इसे अनदेखा करने के लिए ओरेकल को बताने के लिए एक अपवाद हैंडलर जोड़ने की आवश्यकता है। जैसा कि मुख्य मुद्दा तय करना हमेशा बेहतर होता है, यह जाने का तरीका है।
दो चीजें हैं जो आप कर सकते हैं। यदि आप क्वेरी को एकल पंक्ति से अधिक वापस करने की अपेक्षा करते हैं, तो आप इसे संशोधित कर सकते हैं ताकि यह आश्चर्यचकित न हो। यदि आप केवल एक पंक्ति को वापस करने के लिए क्वेरी की अपेक्षा करते हैं, तो आप उसके लिए भी इसे संशोधित कर सकते हैं।
एक से अधिक पंक्ति की अपेक्षा:
X के लिए (जहां से टी का चयन करें …)
पाश
- यहां एक्स रिकॉर्ड की प्रक्रिया करें
अंत लूप;
यह डेटाबेस क्वेरी में त्रुटि को मिटा देना चाहिए जहां एक से अधिक पंक्ति वापस आ जाएगी।
यदि आप केवल एक ही पंक्ति वापस होने की उम्मीद करते हैं, तो आप कोशिश कर सकते हैं:
शुरू
* का चयन करें …।
टी कहाँ से…।
प्रक्रिया …।
अपवाद
जब NO_DATA_FOUND तब
कोई रिकॉर्ड नहीं मिलने पर त्रुटि कोड
जब TOO_MANY_ROWS तब
बहुत सारे रिकॉर्ड पाए जाने पर त्रुटि हैंडलिंग कोड
समाप्त;
इस दूसरी विधि में 'ORA-01422: को फेंकने के बिना सिर्फ एक पंक्ति दी जानी चाहिए: सटीक भ्रूण पंक्तियों की संख्या में त्रुटि से अधिक है और इसलिए मूल ORA-06512 त्रुटि है।
आप क्वेरी को भी बदल सकते हैं ताकि यह केवल एक बहु पंक्ति उत्तर की पहली पंक्ति लौटाए। यदि आप डेटाबेस पर पूर्ण नियंत्रण नहीं रखते हैं या बहुत अधिक चीजों के साथ गड़बड़ नहीं करना चाहते हैं, तो भी यह काम कर सकता है, लेकिन फिर भी इसका जवाब चाहिए।
घोषित
c1 का चयन करने के लिए कर्सर जहां टी से…
शुरू
खुला c1;
लाने में c1 ।।
अगर (सी 1% नोटफाउंड) तो
कोई रिकॉर्ड नहीं मिला के लिए त्रुटि हैंडलिंग
अगर अंत;
करीब c1;
समाप्त;
(यदि आप SQL जानते हैं, तो आप इन कमांड लाइनों से थोड़ा भ्रमित हो सकते हैं … Oracle Transact-SQL का उपयोग नहीं करता है, बल्कि यह SQL, PL / SQL का स्वयं का प्रक्रियात्मक भाषा विस्तार है। जबकि Transact-SQL, PL / SQL के समान है। बहुत सारी चतुर चीजें और अपने आप में एक बहुत शक्तिशाली उपकरण है। ओरेकल सीखने की कोशिश करते समय आपको यह पीएल / एसक्यूएल FAQ उपयोगी हो सकता है।)
यहाँ मूल सबक ORA-06512 त्रुटि की तुलना में है, और अपने आप में, कुछ ऐसा नहीं है जिसे आप सीधे ठीक कर सकते हैं। इसके बजाय आपको यह पता लगाना होगा कि वास्तविक त्रुटि क्या है, जो अन्य त्रुटि कोड आपको बताएंगे, और फिर एक-एक करके उन त्रुटियों को संबोधित करेंगे।
क्या आपके पास साझा करने के लिए कोई ओरेकल युक्तियाँ या चालें हैं? हमें टिप्पणियों में उनके बारे में बताएं!
