J'ai un paquet PL/SQL qui renvoie un sys_refcursor basé sur l'identifiant que vous lui transmettez. Je voudrais parcourir certains identifiants et créer un nouveau curseur ref avec une colonne du jeu de résultats d'origine répété pour chaque identifiant. (. Une sorte de tableau croisé) Une version très simplifiée du bloc PL/SQL ressemble:utiliser le curseur oracle dans un sys_refcursor
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;
Je pense que si j'avais quelque chose comme ça
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;
travail
, je pouvais le prendre de là ... des pensées? Ou peut-être une clarification sur la question que je devrais poser.
Merci pour l'astuce sur FM9G999G999G999, c'est génial! Je regarde la fonction de pipeline maintenant. – Lloyd