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

Oracle PL/SQL:फंक्शन कर्सर

यह संभव है या नहीं, यह सवाल नहीं होना चाहिए, बल्कि यह होना चाहिए था कि क्या यह सही तरीका है। बेशक आप इसे वैसे ही कर सकते हैं जैसे आप कर रहे हैं लेकिन जैसा कि विशेषज्ञों ने सुझाव दिया है, यह सही और कारगर तरीका नहीं है। देखें कि आप इसे कैसे कर सकते हैं। पुनश्च:परीक्षण नहीं किया गया।

CREATE OR REPLACE PACKAGE BODY TESTJNSABC IS

  -- FUNCTION IMPLEMENTATIONS
  FUNCTION get_num(num IN NUMBER) 
    RETURN SYS_REFCURSOR AS
    my_cursor SYS_REFCURSOR;
  BEGIN
    --
    OPEN my_cursor FOR 
    WITH ntable AS (
         SELECT 1 ID, 111 AGT, 'ABC' DESCRIP FROM DUAL
         UNION ALL
         SELECT 2 ID, 222 AGT, 'ABC' DESCRIP FROM DUAL
         UNION ALL
         SELECT 1 ID, 333 AGT, 'ABC' DESCRIP FROM DUAL
    )
    SELECT AGT FROM ntable WHERE ID = num;
    RETURN my_cursor;

  END;

  -- PROCEDURE IMPLEMENTATIONS 
  PROCEDURE testingabc AS
    --Creating a collection to hold return of the function
    type y is table of varchar2(1000) index by pls_integer; 
    var_z  y; 
    var_1 varchar2(100);

    BEGIN

     Select get_num(1)
     bulk collect into  var_z
     from dual;

    For i in 1..var_z.count
    loop

     WITH xtable AS (
         SELECT 111 AGT, 'A' DESCRIP FROM DUAL
         UNION ALL
         SELECT 222 AGT, 'B' DESCRIP FROM DUAL
         UNION ALL
         SELECT 333 AGT, 'C' DESCRIP FROM DUAL
     )
      SELECT DESCRIP
      into var_1 
      FROM xtable 
      WHERE AGT = var_z(i) ; ---Check each record

      dbms_output.put_line(var_1);

     end loop;

    END testingabc;

END TESTJNSABC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं SQL डेवलपर में स्थानीय फ़ाइल कैसे पढ़ूं?

  2. ORACLE SQL ORA-22814 विशेषता या तत्व मान प्रकार में निर्दिष्ट से बड़ा है

  3. Oracle PL/SQL UTL_FILE.PUT बफ़रिंग

  4. मॉड फंक्शन के साथ ओरेकल राउनम बिहेवियर

  5. ओरेकल एसक्यूएल:लापता कीवर्ड