Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thu thập hàng loạt vào và thực hiện ngay lập tức trong Oracle

Có, về mặt kỹ thuật, bạn có thể:

  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 

Và Oracle nói rõ điều này trong tài liệu:

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

Nhưng bạn có thể sử dụng sự kiện cách hữu ích hơn nếu bạn thực sự CẦN thực thi SQL động - con trỏ tham chiếu yếu. Bạn sẽ có quyền truy cập vào tùy chọn mạnh mẽ như LIMIT và sẽ có thể sử dụng các bộ sưu tập hồ sơ.

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. Các khóa ngoại có thực sự cần thiết trong thiết kế cơ sở dữ liệu không?

  2. Làm cách nào để bạn thiết lập một máy chủ được liên kết với cơ sở dữ liệu Oracle trên SQL 2000/2005?

  3. Cách cài đặt cơ sở dữ liệu Oracle trên Windows

  4. Truy vấn tìm bản quét toàn bảng trong oracle

  5. Hướng dẫn từng bước để cài đặt MySQL trên Windows