स्पष्ट कर्सर और इम्प्लिस्टिक कर्सर के बीच का अंतर

Anonim

स्पष्ट कर्सर बनाम अंतर्निहित कर्सर

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

अंतर्निहित कर्सर क्या है?

इम्प्लिटिव कर्सर स्वचालित रूप से बनाये जाते हैं और ओरेकल द्वारा प्रत्येक बार चुनिंदा बयान जारी किया जाता है। यदि कोई निहित कर्सर उपयोग किया जाता है, तो डाटाबेस मैनेजमेंट सिस्टम (डीबीएमएस) खुले, फ़ेच और क्लोज़ ऑपरेशन स्वचालित रूप से प्रदर्शन करेगा। इम्प्लिटिव कर्सर का इस्तेमाल केवल एसक्यूएल स्टेटमेंट्स के साथ किया जाना चाहिए जो कि एक पंक्ति वापस लौटाते हैं। यदि SQL कथन एक से अधिक पंक्ति लौटता है, तो एक अंतर्निहित कर्सर का उपयोग करके एक त्रुटि मिल जाएगी एक अंतर्निहित कर्सर स्वचालित रूप से प्रत्येक डेटा मैनेप्युलेशन लैंग्वेज (डीएमएल) स्टेटमेंट के साथ जुड़ा होता है, अर्थात् INSERT, अद्यतन और डिलीटे स्टेटमेंट्स। इसके अलावा, एक अंतर्निहित कर्सर का उपयोग चयन बयान के तहत किया जाता है। अन्तर्निहित कर्सर का उपयोग करते हुए डेटा प्राप्त करते समय NO_DATA_FOUND अपवाद उठाया जा सकता है जब SQL कथन कोई डेटा नहीं देता। इसके अलावा, अंतर्निहित कर्सर TOO_MANY_ROWS अपवाद बढ़ा सकते हैं, जब SQL कथन एक से अधिक पंक्ति लौटता है।

स्पष्ट कर्सर क्या है?

जैसा कि पहले उल्लेख किया गया है, स्पष्ट कर्सर एक नाम का उपयोग करते हुए क्वेरीज़ हैं। एक स्पष्ट कर्सर रिकॉर्ड के एक सेट के रूप में एक संकेतक के रूप में विचार किया जा सकता है और रिकॉर्डर के सेट के भीतर पॉइंटर को आगे बढ़ाया जा सकता है। स्पष्ट कर्सर उपयोगकर्ता को डेटा खोलने, बंद करने और प्राप्त करने पर पूर्ण नियंत्रण प्रदान करता है। साथ ही, एक स्पष्ट कर्सर का उपयोग करके एकाधिक पंक्तियों को प्राप्त किया जा सकता है। स्पष्ट कर्सर भी किसी भी फ़ंक्शन या प्रक्रिया की तरह पैरामीटर भी ले सकते हैं ताकि प्रत्येक बार इसे निष्पादित करने के बाद कर्सर में वेरिएबल को बदला जा सके। इसके अलावा, स्पष्ट कर्सर आपको पीएल / एसक्यूएल रिकॉर्ड वैरिएबल में पूरी पंक्ति लाने की अनुमति देते हैं। एक स्पष्ट कर्सर का उपयोग करते समय, पहले इसे किसी नाम का उपयोग करके घोषित करना होगा। कर्सर को दिए गए नाम का उपयोग करके कर्सर गुणों को एक्सेस किया जा सकता है। घोषित करने के बाद, कर्सर को पहले खोला जाना चाहिए। तब फ़ेचिंग शुरू किया जा सकता है। यदि एकाधिक पंक्तियों को प्राप्त करना है, तो फ़ेचिंग ऑपरेशन को किसी लूप के अंदर करना चाहिए। अंत में, कर्सर को बंद होना चाहिए।

स्पष्ट कर्सर और अंतर्निहित कर्सर के बीच का अंतर

अंतर्निहित कर्सर और स्पष्ट कर्सर के बीच मुख्य अंतर यह है कि एक स्पष्ट कर्सर को एक नाम प्रदान करके स्पष्ट रूप से परिभाषित किया जाना चाहिए, जबकि अंतर्निहित कर्सर स्वचालित रूप से बनाए जाते हैं आप एक चुनिंदा बयान जारी करते हैंइसके अलावा, स्पेशल कर्सर का उपयोग करके कई पंक्तियों को प्राप्त किया जा सकता है, जबकि अंतर्निहित कर्सर केवल एक ही पंक्ति प्राप्त कर सकते हैं। इसके अलावा NO_DATA_FOUND और TOO_MANY_ROWS अपवाद को स्पष्ट कर्सर का उपयोग करते समय उठाया नहीं जाता है, जैसा कि अंतर्निहित कर्सर के विपरीत है। संक्षेप में, अंतर्निहित कर्सर डेटा त्रुटियों के प्रति अधिक संवेदनशील होते हैं और स्पष्ट कर्सर की तुलना में कम प्रोग्रामेटिक नियंत्रण प्रदान करते हैं। इसके अलावा, अंतर्निहित कर्सर स्पष्ट कर्सर की तुलना में कम कुशल मानी जाते हैं।