我有一个PL/SQL包,它基于您传递它的id返回一个sys_refcursor。我想遍历一些ID并创建一个新的引用游标,其中每个ID都重复一个原始结果集。 (排序交叉选项卡)的PL/SQL块的一个非常简化的版本是这样的:在sys_refcursor中使用oracle游标
create or replace package body dashboard_package is
procedure visits(RC in out sys_refcursor, IdNumber varchar2) as
BEGIN
OPEN RC FOR
select *
from (
select cat, cat_order, subcat, label_text
, trim(to_char(sum(v.current_month),'9,999,999,999')) current_month
, trim(to_char(sum(v.ly_month),'9,999,999,999')) ly_month
, trim(to_char(sum(v.ytd_tot),'9,999,999,999')) ytd_tot
, trim(to_char(sum(v.lytd_tot),'9,999,999,999')) lytd_tot
, trim(to_char(sum(v.ly_tot),'9,999,999,999')) ly_tot
from dashboard v
where v.id_number = IdNumber
group by cat_order, subcat, cat, label_text
union all
...
) a
order by cat_order, subcat;
END;
END;
我想,如果我有这样的事情
create or replace procedure test_refcur is
refCursorValue SYS_REFCURSOR;
begin
dashboard_package.visits(refCursorValue,12345);
for cursrow in refCursorValue loop
dbms_output.put_line(cursrow.ytd_tot);
end loop;
end test_refcur;
的工作,我可以把它从那里...有什么想法?或者也许可以澄清我应该问的问题。
感谢您提供FM9G999G999G999的提示,太棒了!我正在研究管道功能。 – Lloyd 2009-07-09 14:44:39