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

लूप के लिए ऑरैकल में गतिशील रूप से टेबल नाम पास करें

आप एक REF CURSOR प्रकार के कर्सर का उपयोग कर सकते हैं। Oracle Doc से:(इसमें बाइंड भी शामिल है - आपने उनके लिए नहीं पूछा...)

CREATE OR REPLACE PROCEDURE query_invoice(
       month VARCHAR2, 
       year VARCHAR2) IS
    TYPE cur_typ IS REF CURSOR;
    c cur_typ;
    query_str VARCHAR2(200);
    inv_num NUMBER;
    inv_cust VARCHAR2(20);
    inv_amt NUMBER;
BEGIN
    query_str := 'SELECT num, cust, amt FROM inv_' || month ||'_'|| year 
      || ' WHERE invnum = :id';
    OPEN c FOR query_str USING inv_num;
    LOOP
        FETCH c INTO inv_num, inv_cust, inv_amt;
        EXIT WHEN c%NOTFOUND;
        -- process row here
    END LOOP;
    CLOSE c;
END;
/



  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 डिकोड फ़ंक्शन विभिन्न स्वरूपों के साथ परिणाम देता है

  2. कई डेटा स्रोतों के साथ टॉमकैट 6/7 जेएनडीआई

  3. ORACLE IN क्लॉज में टुपल्स का उपयोग करना और टपल में एक तत्व के लिए एक शर्त

  4. कुंजी द्वारा दिनांक सीमा के लिए पंक्तियाँ कैसे उत्पन्न करें

  5. मुझे DDL परिवर्तनों को एक परिवेश से दूसरे परिवेश में कैसे स्थानांतरित करना चाहिए?