1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| CREATE OR REPLACE PACKAGE SYS.PKG_TEST AS
PROCEDURE PS_LISTE_COMMANDES(
xCodePrel IN VARCHAR2,
wCurCommande OUT T_CURSOR
)
IS
BEGIN
DECLARE
-- Variables
vSQL_ERREUR VARCHAR2(500) := null; -- Utilisé pour enregistrer les erreurs SQL dans la base
vRequete LONG; -- Requete utilisee comme curseur
vCurComm T_CURSOR; -- Curseur de liste des commandes
BEGIN
-- Requete contenant les commandes
vRequete := 'SELECT ROWNUM AS "NumCommande", VCLIENTS.NOM as "NomClient", VAGRICULTEURS.NOM ||'' ''|| VAGRICULTEURS.PRENOM as "NomAgri", VAGRICULTEURS.PRENOM as "PrenomAgri", VAGRICULTEURS.CP as "CPAgri", VAGRICULTEURS.VILLE as "VilleAgri", NBPRELEVEMENT as "NbPrelevement", OPRELEVEURS.CP as "CPPrel", DATEPLANIFICATION as "DatePlanification", DATEREALISATION as "DateRealisation"
FROM VCLIENTS INNER JOIN VAGRICULTEURS ON VCLIENTS.IDCLIENT=VAGRICULTEURS.IDCLIENT
INNER JOIN VCOMMANDES ON VAGRICULTEURS.IDAGRICULTEUR=VCOMMANDES.IDAGRICULTEUR
INNER JOIN OPRELEVEURS ON VCOMMANDES.CODEPREL=OPRELEVEURS.CODEPREL
WHERE CODEPREL='''|| xCodePrel ||'''';
-- On ouvre le curseur
OPEN vCurComm FOR vRequete;
-- Curseur OUT
wCurCommande := vCurComm;
EXCEPTION
WHEN OTHERS
THEN
vSQL_ERREUR := SQLCODE ||':'|| SQLERRM;
insert into wtrace_erreur_sql values (sysdate, xCodePrel, vSQL_ERREUR, '3', 'PS_LISTE_COMMANDES', null);
END;
END;
END PKG_TEST;
/ |
Partager