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

पीएल/एसक्यूएल में एक कॉलम पर पुनरावृति

पीएल/एसक्यूएल में तालिका में पंक्तियों पर पुनरावृति करने का सबसे आसान तरीका कुछ ऐसा करना है

BEGIN
  FOR employees IN (SELECT emp_id FROM emp)
  LOOP
    dbms_output.put_line( employees.emp_id );
  END LOOP;
END;

वैकल्पिक रूप से, आप सभी EID मानों को PL/SQL संग्रह में ला सकते हैं और संग्रह पर पुनरावृति कर सकते हैं, जैसा कि इस उदाहरण में है

DECLARE
  TYPE emp_id_tbl IS TABLE OF emp.emp_id%type;
  l_emp_ids emp_id_tbl ;
BEGIN
  SELECT emp_id
    BULK COLLECT INTO l_emp_ids 
    FROM emp;

  FOR i IN l_emp_ids .FIRST .. l_empnos.LAST
  LOOP
    dbms_output.put_line( l_emp_ids (i) );
  END LOOP;
END;

यदि आपकी क्वेरी हजारों पंक्तियों को वापस कर सकती है, हालांकि, संग्रह में सभी डेटा लाने से आप जितना चाहें उतना अधिक पीजीए मेमोरी का उपयोग कर सकते हैं और आपको LIMIT क्लॉज का उपयोग करके पंक्तियों को टुकड़ों में लाने की आवश्यकता हो सकती है। लेकिन ऐसा लगता है कि इस बिंदु पर खुद से आगे निकल रहा है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oct2014CPU, ArcGIS डेस्कटॉप को क्रैश करता है

  2. अल्पविराम से अलग किए गए मानों को ऑरैकल में पंक्तियों में कैसे परिवर्तित करें?

  3. सी # के साथ ऑरैकल डेटाबेस में ब्लॉब डालें

  4. Oracle DBMS जॉब नहीं चल रहा है

  5. Oracle.DataAccess.Dll x-64 मशीन पर लोडिंग समस्या