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

Oracle में थोक संग्रह करें और तत्काल निष्पादित करें

हाँ, तकनीकी रूप से आप यह कर सकते हैं:

  1  SQL> declare
  2   type x is table of t.id%type index by pls_integer;
  3   xx x;
  4  begin
  5   execute immediate
  6   'select id from t' bulk collect into xx;
  7   dbms_output.put_line(xx.count);
  8  end;
  9  /
426 

और Oracle इसे दस्तावेज़ीकरण में स्पष्ट रूप से बताता है:

http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/executeimmediate_statement.htm

लेकिन यदि आप वास्तव में डायनामिक एसक्यूएल - कमजोर रेफ कर्सर निष्पादित करने की आवश्यकता है तो आप अधिक उपयोगी तरीके से ईवेंट का उपयोग कर सकते हैं। आपके पास LIMIT जैसे शक्तिशाली विकल्प तक पहुंच होगी और आप अभिलेखों के संग्रह का उपयोग करने में सक्षम होंगे।

SQL> declare
  2   type x is table of t%rowtype index by pls_integer;
  3   xx x;
  4   c sys_refcursor;
  5  begin
  6    open c for 'select * from t';
  7    loop
  8      fetch c bulk collect into xx limit 100;
  9      dbms_output.put_line(xx.count);
 10      exit when c%notfound;
 11    end loop;
 12    close c;
 13  end;
 14  /
100                                                                             
100                                                                             
100                                                                             
100                                                                             
26   


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एंटिटी के साथ बिना प्राथमिक कुंजी वाले दृश्य का उपयोग करना

  2. प्रबंधित ODP.NET ड्राइवर डेटा स्रोत संवाद में दिखाई नहीं देता है

  3. ओरेकल:कैसे एक प्रश्न के द्वारा कुल प्रतिशत प्राप्त करने के लिए?

  4. SQL का उपयोग करके वर्ड द्वारा रिवर्स स्ट्रिंग वर्ड

  5. Oracle में DatedIFF फ़ंक्शन