我想编写利用光标和批量收集来检索我的数据的 pl/sql 代码。我的数据库有数百万行,有时我必须查询它以获取几乎所有客户请求的记录。我是批量进行查询和后续处理,以免服务器拥塞并向客户端显示增量进度。我已经看到为以后的批次挖掘需要更多的时间,这就是为什么我试图通过光标来完成它。
这是围绕我的主要 sql 查询应该是简单的 pl/sql 的内容:
declare
cursor device_row_cur
is
select /my_query_details/;
type l_device_rows is table of device_row_cur%rowtype;
out_entries l_device_rows := l_device_rows();
begin
open device_row_cur;
fetch device_row_cur
bulk collect into out_entries
limit 100;
close device_row_cur;
end;
我正在批量生产 100 个,并将它们放入out_entries
. 问题是这个块编译和执行得很好,但不返回它获取的数据行。我希望它以 select 的方式返回这些行。如何做到这一点?有任何想法吗?