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

ओरेकल में संग्रहित प्रक्रिया से परिणामसेट कैसे लौटाएं?

इस ट्यूटोरियल में, मैं sys_refcursor का उपयोग करके Oracle में संग्रहीत कार्यविधि से परिणामसेट वापस करने के लिए एक उदाहरण दे रहा हूँ।

Oracle में संग्रहीत कार्यविधि से परिणामसेट वापस करने के लिए इन चरणों का पालन करें।

<एच3>1. Oracle में एक संग्रहित प्रक्रिया बनाएं

निम्न संग्रहीत कार्यविधि (p_dept) विभाग के नाम sys_refcursor (p_result) में विभाग तालिका से लौटाएगी जहाँ विभाग संख्या पैरामीटर मान से कम या उसके बराबर है।

CREATE OR REPLACE PROCEDURE p_dept (p_deptno IN dept.deptno%TYPE,
p_result OUT SYS_REFCURSOR)
IS
BEGIN
OPEN p_result FOR
SELECT dname
FROM dept
WHERE deptno <= p_deptno;
END;
/
<एच3>2. लौटा हुआ परिणाम प्राप्त करेंसेट और प्रक्रिया करें

निम्नलिखित पीएल/एसक्यूएल ब्लॉक संग्रहित प्रक्रिया (p_dept) से परिणाम प्राप्त करेगा और विभाग के नाम प्रिंट करेगा।

SET SERVEROUTPUT ON;
DECLARE
v_result SYS_REFCURSOR;
v_dname VARCHAR2 (100);
BEGIN

/* call the procedure by passing department numbner and sys_refcursor for resultset */
p_dept (30, v_result);

LOOP
FETCH v_result INTO v_dname;

EXIT WHEN v_result%NOTFOUND;
DBMS_OUTPUT.put_line (v_dname);
END LOOP;
END;
/

आउटपुट:

ACCOUNTING
RESEARCH
SALES
PL/SQL procedure successfully completed.

यह भी देखें:

  • पीएल/एसक्यूएल का उपयोग करके एक पीडीएफ फाइल बनाएं
  • पीएल/एसक्यूएल में किसी भी देश का वर्तमान स्थानीय समय प्राप्त करें

  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 की ALL_TAB_COLUMNS तालिका में BIN$... तालिकाएँ क्या हैं?

  2. Oracle नल और खाली तार के बीच अंतर नहीं कर रहा है?

  3. ओरेकल में वैश्विक अस्थायी तालिकाओं से बचने के तरीके

  4. Oracle SQL पिवट क्वेरी

  5. केवल बैकअप SQL स्कीमा?