हाँ, तकनीकी रूप से आप यह कर सकते हैं:
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