master
Pascal LAFOURCADE 4 years ago
parent 1e41eb623a
commit e34a515749

@ -390,7 +390,7 @@ Consignes :
\item La partie SQL+ nest pas demandée pour les exercices 2 et 3
\end{itemize}
\begin{exercice}[PLSQL] (30 points)
\begin{exercice}[MF1] (10 points)
Donner le programme (partie SQL + et PL/SQL) permettant denregistrer un sport.
@ -406,260 +406,17 @@ Messages à prévoir :
DROP TABLE tligne ;
CREATE TABLE tligne (ligne varchar2(100)) ;
set echo off; set verify off; set feedback off;
variable vidjoueur char(4)
prompt Entrer la reference du joueur :
accept vidjoueur
DECLARE
dmaxpoint number;
dnbjoueur number;
didjoueur char(4);
BEGIN
SELECT count(Nom) INTO dnbjoueur FROM JOUEUR WHERE id_joueur ='&vidjoueur';
if dnbjoueur != 0 then
SELECT max(points) INTO dmaxpoint FROM JOUE
WHERE id_joueur ='&vidjoueur';
INSERT INTO tligne VALUES ('Max points de'||'&vidjoueur'||' : '||to_char(dmaxpoint));
ELSE
INSERT INTO tligne VALUES('count detecte numero du joueur pas bon');
SELECT id_joueur INTO didjoueur FROM JOUEUR
WHERE id_joueur ='&vidjoueur';
end if;
EXCEPTION
when no_data_found then
INSERT INTO tligne VALUES('exception numero du joueur pas bon');
end ;
.
/
SELECT * FROM tligne ;
set verify on; set feedback on; set echo on;
\end{SaveVerbatim}
%% \cache{%\begin{small}
%% \BUseVerbatim{Maxpoints}
%% % \end{small}
%}
%% \begin{center}
%% \begin{verbatim}
%% Nom Prenom Date de naissance Nom Equipe Actuelle
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
%% ...
%% \end{verbatim}
%% \end{center}
\begin{SaveVerbatim}{Joueur}
DROP TABLE tligne ;
CREATE TABLE tligne (ligne varchar2(100)) ;
set echo off;
set verify off;
set feedback off;
DECLARE
dnom varchar2(20);
dprenom varchar2(20);
ddate date;
dnomequipe varchar2(20);
CURSOR c IS SELECT j.Nom, j.Prenom, j.Date_de_naissance, e.Nom FROM JOUEUR j, APPARTIENT a, EQUIPE e
WHERE a.id_joueur = j.id_joueur and e.id_equipe = a.id_equipe and a.Date_fin is NULL
Order by Date_de_naissance;
BEGIN
OPEN c;
INSERT INTO tligne VALUES ('Nom Prenom Date de naissance Nom Equipe Actuelle');
FETCH c INTO dnom, dprenom, ddate, dnomequipe;
WHILE c%found
LOOP
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||to_char(ddate)||' '||dnomequipe);
FETCH c INTO dnom, dprenom, ddate, dnomequipe;
END LOOP;
CLOSE C;
END;
.
/
SELECT * FROM tligne ;
set verify on;
set feedback on;
set echo on;
\end{SaveVerbatim}
%% \cache{%\begin{small}
%% \BUseVerbatim{Joueur}
%% % \end{small}
%% }
%% \item (20 points) Lister dans une table \code{TLIGNES} tous les
%% joueurs ayant particip\'e \`a un ALLSTAR de la conf\'erence Est et
%% ceux de la conf\'erence Ouest avec les informations suivantes :
%% \begin{center}
%% \begin{small}
%% \begin{verbatim}
%% ALLSTAR MATCH
%% EQUIPE de l'EST
%% Nom Prenom Poste Equipe Actuelle
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
%% EQUIPE de l'EST
%% Nom Prenom Poste Equipe Actuelle
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
%% \end{verbatim}
%% \end{small}
%% \end{center}
\begin{SaveVerbatim}{Allstar}
DECLARE
dnom varchar2(20); dprenom varchar2(20);
dposte char(2); dnomequipe varchar2(20);
CURSOR Cest IS SELECT j.Nom, j.Prenom, j.Poste, e.Nom FROM JOUEUR j,
APPARTIENT a, EQUIPE e WHERE a.id_joueur = j.id_joueur and e.id_equipe
= a.id_equipe and e.conference='Est' and j.id_joueur in (SELECT
id_joueur FROM JOUE je, GAME g where g.Categorie='Allstar' and
g.id_game=je.id_game);
CURSOR Couest IS SELECT j.Nom, j.Prenom, j.Poste, e.Nom FROM JOUEUR j,
APPARTIENT a, EQUIPE e WHERE a.id_joueur = j.id_joueur and e.id_equipe
= a.id_equipe and e.conference='Ouest' and j.id_joueur in (SELECT
id_joueur FROM JOUE je, GAME g where g.Categorie='Allstar' and
g.id_game=je.id_game);
BEGIN
INSERT INTO tligne VALUES ('ALLSTAR GAME);
INSERT INTO tligne VALUES ('Conference Est');
INSERT INTO tligne VALUES ('Nom Prenom Poste Nom Equipe Actuelle');
OPEN Cest;
FETCH Cest INTO dnom, dprenom, dposte, dnomequipe;
WHILE Cest%found LOOP
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||dposte||' '||dnomequipe);
FETCH Cest INTO dnom, dprenom, dposte, dnomequipe;
END LOOP;
CLOSE Cest;
INSERT INTO tligne VALUES ('Conference Ouest');
OPEN Couest;
INSERT INTO tligne VALUES ('Nom Prenom Poste Nom Equipe Actuelle');
FETCH Couest INTO dnom, dprenom, dposte, dnomequipe;
WHILE Couest%found LOOP
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||dposte||' '||dnomequipe);
FETCH Couest INTO dnom, dprenom, dposte, dnomequipe;
END LOOP;
CLOSE Couest;
END;
.
/
SELECT * FROM tligne ;
\end{SaveVerbatim}
%% \cache{\begin{footnotesize}
%% \BUseVerbatim{Allstar}
%% \end{footnotesize}
%% }
\end{exercice}
%% \begin{center}
%% \begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]
%% \node (a) at (5,-4) {\begin{varwidth}{1.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}AFFECTATION\\
%% \hline
%% \underline{id\_contrat}\\
%% \#id\_personnel\\
%% \#id\_patient\\
%% Date\_debut\\
%% Date\_fin\\ \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node (f) at (0,0) {\begin{varwidth}{2.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}FONCTION\\
%% \hline
%% \underline{id\_fonction}\\
%% Designation\\
%% Salaire\\
%% \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node (p) at (5,0) {\begin{varwidth}{2.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}PERSONNEL\\
%% \hline
%% \underline{id\_personnel}\\
%% \#id\_fonction\\
%% \#id\_hopital\\
%% Nom\\
%% Prenom\\
%% \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node[draw,rectangle] (pa) at (0,-4) {\begin{varwidth}{2in}
%% \begin{tabular}{l}
%% \rowcolor{Gray}PATIENT\\
%% \hline
%% \underline{id\_patient}\\
%% Nom\\
%% Prenom\\
%% Date\_naissance\\
%% \end{tabular}
%% \end{varwidth}};
%% \node[draw,rectangle] (h) at (9,0) {
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}HOPITAL\\
%% \hline
%% \underline{id\_hopital}\\
%% Nom\\
%% Ville\\
%% Date\_creation\\
%% \hline
%% \end{tabular}
%% };
%% \draw[-latex] (p) -- (f);
%% \draw[-latex] (p) -- (h);
%% \draw[latex-] (p) -- (a);
%% \draw[latex-] (pa) -- (a);
%% \end{tikzpicture}
%% \end{center}
\begin{exercice}[PLSQL] (45 points)
\begin{exercice}[MF2] (15 points)
Donner le programme permettant la suppression dun joueur à condition
quil nait pas fait de réservations pour aujourdhui ou dans le
futur. Lidentifiant du joueur aura été précédemment lu dans la
@ -674,7 +431,7 @@ une exception utilisateur:
\end{exercice}
\begin{exercice}[PLSQL] (45 points)
\begin{exercice}[MF3] (20 points)
Donner le programme permettant dafficher les réservations actuelles
ou futures par créneau horaire pour un sport donné. On utilisera le
nom du sport contenu dans la variable \code{vnomSport}. On affichera les
@ -695,20 +452,14 @@ Nombre de réservations total pour ce sport : nb
\end{SaveVerbatim}
% \cache{%\begin{small}
\BUseVerbatim{Affichage}
%\end{small}
\begin{center}
\fbox{ \BUseVerbatim{Affichage}}
\end{center}
%\end{small}
% }
\begin{SaveVerbatim}{Insertion}
TODO
\end{SaveVerbatim}
%% \cache{%\begin{small}
%% \BUseVerbatim{Insertion}
%% % \end{small}
%% }
\end{exercice}

Loading…
Cancel
Save