Vous êtes sur la page 1sur 2

TD4: PL/SQL

Matière : SGBD Classe : 2ème année LFSI


Prof : Mme Emna HKIRI NB pages :2

Les entrées et les sorties en PL/SQL…………………………………………………..…


Il est possible de passer en paramètres d'entrée d'un bloc PL/SQL des variables définies
sous SQL*PLUS. On accède aux valeurs d'une telle variable dans le code PL/SQL en
faisant préfixer le nom de la variable par un « & ».
La directive ACCEPT permet de faire une lecture de la variable au clavier.

Exemple: lecture d’une seule variable…………………………………………………………………...…


ACCEPT COD_RUB CHAR PROMPT 'Veuillez saisir la rubrique de paie :> '
SET serveroutput ON
declare
code_rub char(5);
begin
code_rub := '&COD_RUB';
dbms_output.put_line ('valeur de la rubrique:'||code_rub);
end;
/
Exemple : lecture de plusieurs variables………………..……………………………………………...…

ACCEPT s_brevet PROMPT 'Entrer code Brevet : '


ACC E PT s _duréeVol P ROMPT 'Entrer durée du Vol : '
DECLARE
v_nom Pilote.nom%TYPE;
v_nbHVol Pilote.nbHVol%TYPE;
BEGIN
SELECT nom, nbHVol
INTO v_nom, v_nbHVol
FROM Pilote
WHERE brevet = '&s_brevet';
v_nbHVol := v_nbHVol + &s_duréeVol;
DBMSOUTPUT.PUT_LINE('Total heure s vol : ' || v_nbHVol || ' de ' || v_nom);
END;/

SUJET: GESTION D’UN PARC DE VEHICULES (PARCVEH) …………………………………..………

VOITURE (NOV,MV,KM,PSG) : à une voiture on associe son numéro de voiture NOV qui la
distingue des autres voitures, sa marque MV, le nombre de kilomètres qu'elle a parcourus
KM, le nombre de places disponibles de passagers PSG.

CH (NCH,CHAUFFEUR) à un numéro de chauffeur NCH on associe un seul nom du


chauffeur CHAUFFEUR.

V-CH (NOV,NCH,NKM)prédicat : le chauffeur de tel numéro NCH a conduit la voiture de


tel numéro NOV pendant tant de kilomètres NKM depuis que la voiture est en service.
FSMonastir SGBD

REPARATION (NOREP,NOV,NOG,TYPREP,PX,KMCPT) la voiture de tel numéro NOV est


menée au garage de tel numéro NOG pour une réparation de numéro NOREP et de type
TYPEREP; elle a alors tant de kilomètres au compteur KMCPT. Cette réparation a coûté
tant PX.

TRAJET (NOTRAJ,VILLEDEP,VILLEARR,DATETRAJET,NBKM) un trajet de tel numéro


NOTRAJ a été effectué à telle date DATE-TRAJET; les villes
de départ et d'arrivée sont respectivement VILLEDEP, VILLEARR; le trajet est de tant de
kilomètres NBKM.
TR_NOV (NOTRAJ,NOV,NCH,NBPERSTR) la voiture de numéro NOV, conduite par le
chauffeur de numéro NCH, a transporté tant de personnes (NBPERSTR) pour le trajet de
numéro NOTRAJ.

Un chauffeur peut conduire plusieurs fois la même voiture pour des trajets différents, et
il y a un seul chauffeur qui conduit une voiture au cours d’un trajet

Questions:………………………………………………...…………………………………….............................…

1.Ecrivez un bloc PL/SQL pour :


a. Entrez un nom d’une ville,
b. Affichez le nombre moyen, le nombre minimum, le nombre maximum de kilomètres des
trajets qui sont partis de cette ville.
2. Ecrivez un bloc PL/SQL pour :
a. Entrez un ans,
b. Affichez le numéro et la marque de la voiture qui a effectué le plus de trajets dans cette
année. Affichez aussi son nombre de trajets effectués.
3. Ecrivez un bloc PL/SQL pour :
a. Entrez un numéro de trajet,
b. Si ce numéro est déjà existant dans la table TRAJET, affichez toutes ses informations.
Sinon, affichez une phrase comme suit ‘Ce numéro n’existe pas’.
4. Ecrivez un bloc PL/SQL pour :
a. Entrez des informations d’une nouvelle réparation (c.à.d NOREP, NOV, NOG, TYPREP,
PX, KMCPT),
b. Vérifiez que NOV est déjà existante dans la table VOITURE ou pas.
i. Si oui, créer ce nouveau tuple correspondant de la table REPARATION,
ii. Sinon, affichez un message d’erreur.

Mme Emna HKIRI Page 2 sur 2

Vous aimerez peut-être aussi