私はあなたが渡したIDに基づいてsys_refcursorを返すPL/SQLパッケージを持っています。私はいくつかのidsを繰り返し、各idに対して繰り返される元の結果セットから1列の新しいrefカーソルを作成したいと思います。 (クロスタブの並び替え)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