Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle डाटाबेस में PL/SQL SYS_REFCURSOR कैसे बनाएं?

PL/SQL SYS_REFCURSOR Oracle डेटाबेस में

जैसा कि हमने रेफ कर्सर के परिचय में सीखा कि Oracle डाटाबेस में तीन प्रकार के PL/SQL रेफ कर्सर हैं।

  1. मजबूत रेफरी कर्सर
  2. कमजोर रेफरी कर्सर और
  3. SYS_REFCURSOR

इस श्रृंखला में अब तक हमने मजबूत और कमजोर रेफ कर्सर की अवधारणाओं को कवर किया है। एकमात्र प्रकार का कर्सर जो अभी भी अछूता है वह Oracle डेटाबेस में PL/SQL SYS_REFCURSOR है। जो हम इस ब्लॉग में सीखेंगे।

PL/SQL SYS_REFCURSOR क्या है?

SYS_REFCURSOR एक पूर्वनिर्धारित कमजोर रेफ कर्सर है जो Oracle डेटाबेस सॉफ़्टवेयर के साथ अंतर्निहित है।

पूर्व-निर्धारित रेफ कर्सर होने से यह किस प्रकार हमारी सहायता करेगा?

SYS_REFCURSOR एक पूर्वनिर्धारित कमजोर रेफ कर्सर है जिसका अर्थ है कि हमें इसे अपने कोड में परिभाषित करने की आवश्यकता नहीं है जैसे हमने पिछले ट्यूटोरियल में स्पष्ट कमजोर रेफ कर्सर के साथ किया था। जैसा कि हमने उस ट्यूटोरियल में सीखा कि कमजोर रेफ कर्सर बनाना दो चरणों वाली प्रक्रिया है। पहले आपको "कमजोर रेफ कर्सर प्रकार" बनाना होगा और फिर आपको उस रेफ कर्सर का उपयोग करके "एक कर्सर चर" बनाना होगा।

SYS_REFCURSOR का उपयोग करते समय, आपको केवल एक कर्सर चर बनाना होगा और कुछ नहीं। SYS_REFCURSOR पहले चरण को पूरी तरह से छोटा कर देता है जहां आप कमजोर रेफ कर्सर प्रकार बनाते हैं।

तो Sys_Refcursor एक अंतर्निर्मित रेफ कर्सर है, हम इसकी परिभाषा कहां ढूंढ सकते हैं?

आप "stdspec.sql" नामक एक स्क्रिप्ट में PL/SQL SYS_REFCURSOR की परिभाषा का पता लगा सकते हैं। आप इस स्क्रिप्ट को उस निर्देशिका में खोज सकते हैं जिसका पथ इस प्रकार है। 

%ORACLE_HOME% \RDBMS\ADMIN\stdspec.sql

SYS_REFCURSOR परिभाषा कुछ इस तरह दिखाई देगी:

SYS_REFCURSOR किस प्रकार का रेफ कर्सर है?

जैसा कि परिभाषा में ऊपर बताया गया है कि एक SYS_REFCURSOR एक कमजोर रेफरी कर्सर है।

अब जबकि आपने SYS_REFCURSOR के बारे में लगभग सभी शंकाओं को दूर कर दिया है। मैं आपसे सिर्फ एक आखिरी सवाल पूछना चाहता हूं।

जानकारी:REF और CURSOR के बीच कोई स्थान नहीं है। यह एक ही शब्द "RefCursor" है। <मजबूत>
गलत:SYS_REF CURSOR <मजबूत>
सही:SYS_REFCURSOR

जब हमारे पास पहले से ही एक पूर्वनिर्धारित कर्सर है, तो कोई कमजोर रेफ कर्सर की घोषणा क्यों करेगा?

यह वास्तव में बहुत अच्छा प्रश्न है। इस प्रश्न का उत्तर है नहीं, हमें स्पष्ट रूप से एक कमजोर रेफरी कर्सर बनाने की आवश्यकता नहीं है। Oracle ने Oracle डेटाबेस 9i के बाद से मानक पैकेज के एक भाग के रूप में SYS_REFCURSOR को शिपिंग करके एक कमजोर रेफरी कर्सर बनाने की आवश्यकता को कम किया, हालांकि एक बनाने का विकल्प अभी भी उपलब्ध है।

यह एक व्यक्तिगत पसंद की तरह है, अगर कोई कमजोर रेफ कर्सर बनाना चाहता है तो वह कर सकता है। यदि नहीं, तो उनके पास हमेशा SYS_REFCURSOR होता है। मेरे प्रिय मित्र स्टीवन फ्यूरस्टीन ने इस प्रश्न का उत्तर देते हुए एक बहुत अच्छा ब्लॉग पोस्ट किया जिसे आप यहाँ पढ़ सकते हैं।

आइए Oracle डेटाबेस में PL/SQL SYS_REFCURSOR का उपयोग करने का तरीका प्रदर्शित करने वाला एक बहुत ही आसान उदाहरण देखें।

उदाहरण:Oracle डाटाबेस में PL/SQL SYS_REFCURSOR कैसे बनाएं?

SET SERVEROUTPUT ON;
DECLARE
    --Declare cursor variable of SYS_REFCURSOR type
    cur_var SYS_REFCURSOR;
    
    --Declare variables for holding data
    f_name  employees.first_name%TYPE;
    emp_sal employees.salary%TYPE;
BEGIN
OPEN cur_var FOR SELECT first_name, Salary FROM employees WHERE employee_id = 100;
    FETCH cur_var INTO f_name, emp_sal;
    CLOSE cur_var;
    DBMS_OUTPUT.PUT_LINE(f_name ||' '||emp_sal);
END;
/

उपरोक्त कोड की विस्तृत व्याख्या के लिए आप YouTube चैनल पर वीडियो ट्यूटोरियल देख सकते हैं।

आशा है आपको पढ़कर अच्छा लगा होगा और कुछ नया सीखा होगा। कृपया इस ब्लॉग को अपने सोशल मीडिया पर अपने दोस्तों के साथ साझा करें। धन्यवाद और आपका दिन मंगलमय हो।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle 10g समय क्षेत्र भ्रम

  2. Oracle और Kafka को कैसे एकीकृत करें?

  3. PostgreSQL या Oracle में महीने के नाम से ऑर्डर कैसे करें

  4. एजेंट अवरुद्ध है

  5. Oracle एप्लिकेशन एक्सप्रेस-एपेक्स के साथ शुरुआत करना