[.../...]
CURSOR curseur( PE$Edition VARCHAR2, PE$AnMoisSem PLS_INTEGER)
IS
SELECT distinct max(en3.edi_mnemo) c_edition, replace(oe.ord_ref_interne || to_char(ins.ins_no_encart,'00'),' ','') c_numord,
max(replace(pn3.par_num,' ','')) c_dernump, CT.cli_soc
FROM ordre oe, insertion ins, client ct, edition en, parution pn,
insertion ins3, parution pn3, ordre oe3, edition en3
WHERE oe.ord_id = ins.ord_id and ins.edi_id = en.edi_id
and ins.par_id = pn.par_id and en.edi_id = pn.edi_id
and ct.cli_id = oe.cli_id
and en.edi_mnemo in (PE$Edition)
and pn.par_annee || pn.par_mois || pn.par_semaine = PE$AnMoisSem
and nvl(oe.ord_quotepart_fact,100)=100
and ins3.par_id = pn3.par_id and en3.edi_id = pn3.edi_id
and oe3.ord_id = ins3.ord_id and ins3.edi_id = en3.edi_id
and (oe3.ord_ref_interne = oe.ord_ref_interne and ins3.ins_no_encart = ins.ins_no_encart)
and pn3.par_date = (select max(pn1.par_date)
from parution pn1, insertion ins1
where ins1.par_id = pn1.par_id
and ins1.ord_id = oe.ord_id
and pn1.par_date < pn.par_date)
group by replace(oe.ord_ref_interne || to_char(ins.ins_no_encart,'00'),' ',''), CT.cli_soc
order by 3,2 ;
-- $$ Variables d'accueil:
LN$NumOrd ORDRE.ord_ref_interne%Type ;
LN$DerPar PARUTION.par_num%Type ;
LN$Edition EDITION.edi_mnemo%Type;
LN$Client CLIENT.cli_soc%Type;
[.../...]
Open curseur(editions_pub, LU$AnMoisSem) ; -- ouverture du curseur
LOOP -- << PARCOURS des ENREGISTREMENTS ORACLE >> ligne.[ ]
Fetch curseur Into LN$Edition, LN$NumOrd, LN$DerPar, LN$Client ; -- Lecture d'une ligne
dbms_output.put_line('LN$Edition=' || LN$Edition || 'LN$NumOrd=' || LN$NumOrd || 'LN$DerPar=' || LN$DerPar || 'LN$Client=' || LN$Client);
[.../...]
Partager