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

पैरामीटर के रूप में पीएल/एसक्यूएल एरे या संग्रह के साथ कैसे काम करें, फिर उन्हें इंडेक्स द्वारा एक साथ शामिल करें

आप जिस संग्रह प्रकार का उपयोग कर रहे हैं वह एक चर है, इसलिए इसे अनुक्रमित किया जाता है; आप यह कर सकते हैं:

FOR i IN 1..v_contacts_fname.COUNT
LOOP

  dbms_output.put_line(v_contacts_fname(i) ||', ' || v_contacts_lname(i));

END LOOP;

अपना उदाहरण कोड अपनाना:

DECLARE

PROCEDURE create_account(p_entity_id NUMBER
                         , p_sub_id NUMBER
                         , v_contacts_fname sys.odcivarchar2list
                         , v_contacts_lname sys.odcivarchar2list
                         )
  IS

  BEGIN

    dbms_output.put_line('Entity_id: ' || p_entity_id || ' - Sub_id: ' || p_sub_id);

    FOR i IN 1..v_contacts_fname.COUNT
    LOOP

      dbms_output.put_line(v_contacts_fname(i) ||', ' || v_contacts_lname(i));

    END LOOP;


END create_account;

BEGIN

  create_account(p_entity_id            => 550005
                     , p_sub_id         => 100051
                     , v_contacts_fname => sys.odcivarchar2list('dan','bob')
                     , v_contacts_lname => sys.odcivarchar2list('anderson','bebop')
      ) ;

END;
/

अब मिलता है

Entity_id: 550005 - Sub_id: 100051
dan, anderson
bob, bebop


PL/SQL procedure successfully completed.

count . को सत्यापित करने के लिए आप शुरुआत में एक बहुत ही बुनियादी जांच कर सकते हैं दोनों सरणियों से समान है - यदि नहीं तो शायद एक अपवाद फेंक दें।

यदि आप एक एकल संग्रह तर्क पारित करना चाहते हैं तो उस तर्क को रिकॉर्ड या ऑब्जेक्ट प्रकारों का संग्रह होना चाहिए, जिसे या तो स्कीमा स्तर पर या शायद पैकेज में घोषित किया गया है, इस पर निर्भर करता है कि आप सामग्री का उपयोग कैसे करना चाहते हैं (और, कुछ हद तक , Oracle का वह संस्करण जिसका आप उपयोग कर रहे हैं)। हालांकि ऐसा लगता है कि आप ऐसा नहीं करना चाहते।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Oracle oci_num_rows परिणाम 0

  2. Oracle में Dapper QueryMultiple का उपयोग करना

  3. Oracle प्रक्रिया में तालिका को कैसे छोटा करें?

  4. Oracle में LPAD () फ़ंक्शन

  5. फ़ंक्शन का उपयोग करना जहां क्लॉब पैरामीटर के साथ क्लॉज