Oracle PL / SQL कर्सर: लूप के लिए स्पष्ट, स्पष्ट, कर्सर (उदाहरण)

विषय - सूची:

Anonim

PL / SQL में CURSOR क्या है?

एक कर्सर इस संदर्भ क्षेत्र का एक संकेतक है। ओरेकल SQL कथन को संसाधित करने के लिए संदर्भ क्षेत्र बनाता है जिसमें कथन के बारे में सभी जानकारी होती है।

PL / SQL प्रोग्रामर को कर्सर के माध्यम से संदर्भ क्षेत्र को नियंत्रित करने की अनुमति देता है। एक कर्सर SQL स्टेटमेंट द्वारा दी गई पंक्तियों को रखता है। कर्सर की पंक्तियों के सेट को सक्रिय सेट के रूप में जाना जाता है। इन अभिशापों को भी नाम दिया जा सकता है ताकि उन्हें कोड के किसी अन्य स्थान से संदर्भित किया जा सके।

इस ट्यूटोरियल में आप सीखेंगे-

  • अव्यवस्थित कर्सर
  • स्पष्ट कर्सर
  • कर्सर विशेषता
  • लूप कर्सर विवरण के लिए

कर्सर दो प्रकार का होता है।

  • अव्यवस्थित कर्सर
  • स्पष्ट कर्सर

अव्यवस्थित कर्सर

जब भी डेटाबेस में कोई DML ऑपरेशन होता है, तो एक अंतर्निहित कर्सर बनाया जाता है जो उस विशेष ऑपरेशन में प्रभावित पंक्तियों को धारण करता है। इन शापकर्ताओं का नाम नहीं लिया जा सकता है और इसलिए इन्हें कोड के किसी अन्य स्थान से नियंत्रित या संदर्भित नहीं किया जा सकता है। हम कर्सर विशेषताओं के माध्यम से केवल सबसे हाल के कर्सर का उल्लेख कर सकते हैं।

स्पष्ट कर्सर

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

नीचे ऐसे चरण दिए गए हैं जो स्पष्ट अभिशापों के साथ काम करने में शामिल हैं।

  • कर्सर की घोषणा

    घोषणा-पत्र में परिभाषित 'कथन' कथन के लिए कर्सर को घोषित करने का अर्थ केवल एक नामांकित संदर्भ क्षेत्र बनाना है। इस संदर्भ क्षेत्र का नाम कर्सर के नाम के समान है।

  • खुलने वाला कर्सर

    कर्सर को खोलने से पीएल / एसक्यूएल को इस कर्सर के लिए मेमोरी आवंटित करने का निर्देश मिलेगा। यह रिकॉर्ड लाने के लिए कर्सर को तैयार करेगा।

  • कर्सर से डेटा ला रहा है

    इस प्रक्रिया में, 'सेलेक्ट' स्टेटमेंट निष्पादित होता है और जो पंक्तियाँ प्राप्त होती हैं, उन्हें आवंटित मेमोरी में स्टोर किया जाता है। इन्हें अब सक्रिय सेट कहा जाता है। कर्सर से डेटा प्राप्त करना एक रिकॉर्ड-स्तरीय गतिविधि है जिसका अर्थ है कि हम डेटा को रिकॉर्ड-बाय-रिकॉर्ड तरीके से एक्सेस कर सकते हैं।

    प्रत्येक भ्रूण का विवरण एक सक्रिय सेट लाएगा और उस विशेष रिकॉर्ड की जानकारी रखेगा। यह कथन 'SELECT' स्टेटमेंट के समान है जो रिकॉर्ड को प्राप्त करता है और 'INTO' क्लॉज में वेरिएबल को असाइन करता है, लेकिन यह कोई अपवाद नहीं फेंकेगा।

  • कर्सर को बंद करना

    एक बार जब सारे रिकॉर्ड को प्राप्त कर लिया जाता है, तो हमें कर्सर को बंद करने की आवश्यकता होती है ताकि इस संदर्भ क्षेत्र को आवंटित की गई मेमोरी जारी हो सके।

वाक्य - विन्यास:

DECLARECURSOR  IS ;BEGINFOR I IN LOOP… END LOOP;END;
  • उपरोक्त सिंटैक्स में, घोषणा भाग में कर्सर की घोषणा होती है।
  • कर्सर को 'SELECT' स्टेटमेंट के लिए बनाया गया है, जो कर्सर घोषणा में दिया गया है।
  • निष्पादन भाग में, घोषित कर्सर फॉर लूप में सेटअप है और लूप चर 'I' इस मामले में कर्सर चर के रूप में व्यवहार करेगा।

उदाहरण 1 : इस उदाहरण में, हम कर्सर-फॉर लूप का उपयोग करके सभी कर्मचारी का नाम एम्प टेबल से प्रोजेक्ट करेंगे।

DECLARECURSOR guru99_det IS SELECT emp_name FROM emp;BEGINFOR lv_emp_name IN guru99_detLOOPDbms_output.put_line(‘Employee Fetched:‘||lv_emp_name.emp_name);END LOOP;END;/

उत्पादन

Employee Fetched:BBBEmployee Fetched:XXXEmployee Fetched:YYY

कोड स्पष्टीकरण:

  • कोड लाइन 2 : कथन के लिए कर्सर गुरु 99_det की घोषणा करते हुए 'एम्पायर से चयन करें'।
  • कोड पंक्ति 4 : लूप वेरिएबल lv_emp_name के साथ कर्सर के लिए 'फॉर' लूप का निर्माण।
  • कोड लाइन 5: लूप के प्रत्येक पुनरावृत्ति में कर्मचारी का नाम प्रिंट करना।
  • कोड लाइन 8: लूप से बाहर निकलें

नोट: कर्सर-फॉर लूप में, कर्सर की विशेषताओं को खोलने, लाने और बंद करने के बाद से उपयोग नहीं किया जा सकता है।