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

Oracle उदाहरण में थोक संग्रह का चयन करें

पिछले ब्लॉग पोस्ट में, मैंने Oracle बल्क कलेक्ट का उपयोग करने के लिए Cursor Rowtype Type Object का उपयोग करने के लिए एक उदाहरण दिया है। जो पहले कर्सर बनाता है फिर कर्सर टाइप की वस्तु टाइप करता है और फिर कर्सर को खोलता है, बल्क कलेक्ट में लाता है और अंत में उन्हें Forall का उपयोग करके प्रोसेस करता है। लेकिन कभी-कभी आपको अस्थायी अनाम PLSQL ब्लॉक के साथ केवल एक बार के लिए कुछ डेटा तैयार करने की आवश्यकता हो सकती है, और आप उस कार्य को करने के लिए बहुत अधिक कोड नहीं लिखना चाहते हैं। इस प्रकार के परिदृश्यों के लिए, आप बल्क कलेक्ट को इसमें चुनें . का उपयोग कर सकते हैं कोड लिखने के लिए बहुत अधिक समय बर्बाद किए बिना किसी भी कार्य को जल्दी से करने का विकल्प।

नीचे पीएलएसक्यूएल ब्लॉक का उदाहरण दिया गया है जो ईएमपी टेबल से रिकॉर्ड लेगा और बोनस टेबल को अपडेट करेगा और स्क्रीन पर प्रिंट भी करेगा।

SET SEVEROUTPUT ON;
DECLARE
TYPE t_emp IS TABLE OF emp%ROWTYPE;

e_rec   t_emp;
BEGIN
SELECT *
BULK COLLECT INTO e_rec
FROM emp;

FORALL i IN e_rec.FIRST .. e_rec.LAST
update bonus set amount = e_rec(i).sal * 15 / 100
where empno = e_rec(i).empno;

Commit;

FOR i IN e_rec.FIRST .. e_rec.LAST
LOOP
DBMS_OUTPUT.
put_line (
'Bonus Updated For Employee: '
|| e_rec (i).ename
|| ' '
|| 'Bonus: '
|| e_rec(i).sal * 15 / 100);
END LOOP;
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. OracleDataSource बनाम Oracle UCP PoolDataSource

  2. Oracle 10g कॉलम अस्पष्टता के बारे में शिकायत क्यों नहीं करता है?

  3. अनुक्रम और ट्रिगर के साथ oracle autoincrement सही ढंग से काम नहीं कर रहा है

  4. लिक्विबेस लॉक - कारण?

  5. Oracle:बल्क कलेक्ट प्रदर्शन