Bonjour,
j'aimerai pouvoir envoyer une procédure PL/SQL via une page ASP.
Comment faire ?
Code du fichier .SQL de la procédure PL/SQL
-- Définition de la taille du fichier de sortie
set serveroutput on size 1000000
set echo on
spool c:\ListeAvisDePassage.xls;
-- DEBUT PROGRAMME --
Declare
-- Définition du curseur
CURSOR le_Curseur is select rel.rel_date, pde.pde_refe, rel.rel_cons, adr.adr_nrue, adr.adr_rue1,adr.adr_cpos,adr.adr_vill
from eautpde pde, eauthpc hpc1, eautcom com, eautrel rel, gentadr adr, eautabn abn1
where pde.pde_refe not like '%001'
and pde.pde_cptr = hpc1.hpc_peau
and pde.pde_adre = adr.adr_cptr
AND abn1.abn_ddeb = (SELECT MAX(abn2.abn_ddeb) FROM eautabn abn2 WHERE abn2.abn_peau = abn1.abn_peau)
AND hpc1.hpc_ddeb = (SELECT MAX(hpc2.hpc_ddeb) FROM eauthpc hpc2 WHERE hpc2.hpc_peau = hpc1.hpc_peau AND (hpc2.hpc_ddeb <= abn1.abn_dfin or abn1.abn_dfin is null))
and hpc1.hpc_dfin is null
and hpc1.hpc_comp = com.com_cptr
and com.com_cptr = rel.rel_comp
and abn1.abn_peau = pde.pde_cptr
and abn1.abn_dfin is null
and abn1.abn_abon <> 0
and rel.rel_coc1 = 192
-- test restriction
and com.com_cptr = 28
order by pde.pde_refe, rel.rel_date desc;
-- Définition du type d'enregistrement
rel le_Curseur%ROWTYPE;
-- Définition du type de variable
ruptureCodeCompteur rel.pde_refe%TYPE ;
-- compteur des deux derniers relevés
compteur NUMBER (5) := 0;
-- compteur des deux derniers relevés = 0
compteurConsoNull NUMBER (5) := 0;
premiereFois boolean := true;
/***** DEBUT DU PROGRAMME ******/
Begin
-- ouverture du curseur
OPEN le_Curseur;
LOOP
-- affectation des données du curseur
FETCH le_Curseur into rel ;
-- sortie de la boucle lorsque l'on a lu tous les enreg
EXIT WHEN le_Curseur%NOTFOUND ;
-- initialisation référence compteur
if premiereFois = true then
ruptureCodeCompteur := rel.pde_refe ;
premiereFois := false;
end if ;
if ruptureCodeCompteur != rel.pde_refe then
ruptureCodeCompteur := rel.pde_refe ;
compteur := 0;
compteurConsoNull := 0;
end if;
-- lecture des deux premiers enregistrement
if compteur < 4 then
compteur := compteur + 1;
-- si Conso =0 sur les deux derniers enreg lus
-- alors écriture dans fichier de sortie
if rel.rel_cons = 0 then
compteurConsoNull := compteurConsoNull + 1;
if compteurConsoNull = 4 then
DBMS_OUTPUT.PUT_LINE(rel.pde_refe||' '||rel.adr_nrue||' '|| rel.adr_rue1||' '||rel.adr_cpos||' '||rel.adr_vill);
end if ;
end if;
end if;
END LOOP;
-- fermeture du curseur
CLOSE le_Curseur ;
END;
/
spool off
Partager