diff --git a/EXOS/Exam2020-all.tex b/EXOS/Exam2020-all.tex index 5d4e05d..c3a4df6 100644 --- a/EXOS/Exam2020-all.tex +++ b/EXOS/Exam2020-all.tex @@ -523,7 +523,7 @@ Messages à prévoir : \item L’équipement a été enregistré : Libellé \end{itemize} -% \lstinputlisting{exo1-FG.sql} +% \lstinputlisting{exo1-FGL.sql} \end{exercice} \begin{exercice}[PL1] (10 points) @@ -579,7 +579,7 @@ Messages à prévoir : \item nb réservations passées ont été supprimées \end{itemize} -% \lstinputlisting{exo2-FG.sql} +%\lstinputlisting{exo2-FGL.sql} \end{exercice} \begin{exercice}[PL2] (15 points) @@ -685,7 +685,7 @@ Nombre de joueurs à prévenir : nb \fbox{ \BUseVerbatim{AffichageFG}} \end{center} -%\lstinputlisting{exo3-FG.sql} +%\lstinputlisting{exo3-FGL.sql} \end{exercice} \begin{exercice}[PL3] (20 points) @@ -785,7 +785,7 @@ Id réservation : XXXXX date : XX/XX/XX Coût des équipements : 9999€ } \end{center} -% \lstinputlisting{exo4-FG.sql} +\lstinputlisting{exo4-FGL.sql} \end{exercice} diff --git a/EXOS/exo1-FGL.sql b/EXOS/exo1-FGL.sql index def70ab..c6287d5 100644 --- a/EXOS/exo1-FGL.sql +++ b/EXOS/exo1-FGL.sql @@ -2,11 +2,11 @@ create table tresultat(ligne varchar2(200)); variable vidEquipement char(3) -prompt id de l'équipement +prompt id de l equipement accept vidEquipement variable vtarif number -prompt le tarif de l'équipement ? +prompt le tarif de l equipement ? accept vtarif variable vlibelle VARCHAR2(20) diff --git a/EXOS/exo3-FGL.sql b/EXOS/exo3-FGL.sql index ed909f8..19d9221 100644 --- a/EXOS/exo3-FGL.sql +++ b/EXOS/exo3-FGL.sql @@ -1,56 +1,56 @@  DECLARE - - didReservation char(3); + + didReservation char(3); ddateReserv date; - dnom varchar2(20); - dancidReservation char(3); + dnom varchar2(20); + dancidReservation char(3); - dmessage varchar2(200); - inexistant exception; - dcpt number:=0; - dnb number:=0; + dmessage varchar2(200); + inexistant exception; + dcpt number:=0; + dnb number:=0; CURSOR cur IS SELECT idReservation, dateReserv, nom FROM CONTENIR con, RESERVATION res, FAIRE fai, JOUEUR jou WHERE con.idReserv = res.idReserv AND res.idReserv = fai.idReserv AND fai.idJoueur = jou.idJoueur AND dateReserv >= SYSDATE AND con.idEquipement = '&videquip' - ORDER BY 1,2,3; -BEGIN - dmessage:='id équipement inexistant'; - SELECT COUNT(*) INTO dcpt - FROM EQUIPEMENT + ORDER BY 1,2,3; +BEGIN + dmessage:='id équipement inexistant'; + SELECT COUNT(*) INTO dcpt + FROM EQUIPEMENT WHERE idEquipement='&videquip'; - + IF dcpt=0 THEN - RAISE inexistant; - ELSE - OPEN cur; - FETCH cur INTO didReservation, ddateReserv, dnom; - WHILE cur%FOUND - LOOP - INSERT INTO tresultat VALUES ('idReservation:' || didReservation || ' date:' || TO_CHAR(ddateReserv, 'dd/mm/yy')); - dancidReservation:=didReservation; + RAISE inexistant; + ELSE + OPEN cur; + FETCH cur INTO didReservation, ddateReserv, dnom; + WHILE cur%FOUND + LOOP + INSERT INTO tresultat VALUES ('idReservation:' || didReservation || ' date:' || TO_CHAR(ddateReserv, 'dd/mm/yy')); + dancidReservation:=didReservation; - WHILE dancidReservation=didReservation AND cur%FOUND - LOOP - INSERT INTO tresultat VALUES (dnom); + WHILE dancidReservation=didReservation AND cur%FOUND + LOOP + INSERT INTO tresultat VALUES (dnom); dnb := dnb+1; - - FETCH cur INTO didReservation, ddateReserv, dnom; - END LOOP; - END LOOP; + + FETCH cur INTO didReservation, ddateReserv, dnom; + END LOOP; + END LOOP; CLOSE cur; - INSERT INTO tresultat VALUES (''); - INSERT INTO tresultat VALUES ('Nombre de joueurs à prévenir : ' || TO_CHAR(dnb)); + INSERT INTO tresultat VALUES (''); + INSERT INTO tresultat VALUES ('Nombre de joueurs à prévenir : ' || TO_CHAR(dnb)); END IF; - -EXCEPTION + +EXCEPTION WHEN inexistant THEN - INSERT INTO tresultat VALUES (dmessage); -END; - - - + INSERT INTO tresultat VALUES (dmessage); +END; + + + diff --git a/EXOS/exo4-FGL.sql b/EXOS/exo4-FGL.sql index 0a96390..62d2eec 100644 --- a/EXOS/exo4-FGL.sql +++ b/EXOS/exo4-FGL.sql @@ -1,29 +1,26 @@ - DECLARE - - didReserv char(5); - ddateReserv date; - dcout number; + +didReserv char(5); + ddateReserv date; + dcout number; - CURSOR cur IS SELECT idReserv, dateReserv, SUM(nombre*tarif) + CURSOR cur IS SELECT idReserv, dateReserv, SUM(nombre*tarif) FROM RESERVATION res, CONTENIR con, EQUIPEMENT equ WHERE con.idReserv = res.idReserv AND con.idEquipement = equi.idEquipement group by idReserv, dateReserv - order by 2 DESC; -BEGIN - - OPEN cur; - FETCH cur INTO didReserv, ddateReserv, dcout; + order by 2 DESC; +BEGIN + + OPEN cur; + FETCH cur INTO didReserv, ddateReserv, dcout; - WHILE cur%FOUND + WHILE cur%FOUND LOOP - INSERT INTO tresultat VALUES ('Id reservation : ' || didReserv || ' date : ' || TO_CHAR(ddateReserv,'dd/mm/yy') || ' Coût des équipements : ' || TO_CHAR(dcout) || '€'); + INSERT INTO tresultat VALUES ('Id reservation : ' || didReserv || ' date : ' || TO_CHAR(ddateReserv,'dd/mm/yy') || ' Cout des uquipements : ' || TO_CHAR(dcout) || 'euros'); INSERT INTO tresultat VALUES (''); - FETCH cur INTO didReserv, ddateReserv, dcout; - END LOOP; + FETCH cur INTO didReserv, ddateReserv, dcout; + END LOOP; CLOSE cur; -END; - - +END;