Vous êtes sur la page 1sur 1

Université Ibn Tofail Département d’informatique

Faculté des sciences – Kénitra 2018/2019


Examen de la session normale
Filière : LUS - DAWM : Base de données II

Exercice 1

Parmi les déclarations de variables suivantes, déterminer celles qui sont incorrectes en justifiant votre
réponse :
A - DECLARE E - DECLARE
v_id NUMBER(4); emp_record emp_record_type;
B - DECLARE F - DECLARE
v_x,v_y,v_z VARCHAR2(10); TYPE type_table_nom IS TABLE OF
C - DECLARE VARCHAR2(20) INDEX BY
v_date_naissance DATE NOT NULL; BINARY_INTEGER;
D - DECLARE dept_table_nom type_table_nom;
v_en_stock BOOLEAN := 1;

Exercice 2 : collection VARRAY

Dans un bloc PL/SQL anonyme, définir un type collection de réels VARRAY de taille 10 qui
contiendra des notes d’examen.
 Dans la section déclaration, définir une variable de ce type et l’initialiser avec trois notes.
 Dans la section de code, terminer l’initialisation avec les 7 notes manquantes.
 Calculer et afficher la moyenne des notes.

Exercice 2 : vues, fonctions, procédures

Nous considérons le schéma relationnel suivant modélisant les activités d’une agence de location des
voitures.
Clients (idclt, nom, adresse, nbvoiturelouee)
Voitures (idv, dateconstruction, #idmarque)
Marques (idmarque, nomMarque, #idpays)
Locations (idloc, dateloc, duree, #idclt, #idv)

1. Donner les scripts SQL permettant de créer les différentes tables.


2. Définir une fonction pl/sql qui prend en paramètres le numéro d’une voiture et qui retourne
vrai si la voiture est dans le parc (n’est pas louée) et faux sinon.
3. Définir une fonction pl/sql qui prend en paramètre le numéro d’une voiture et qui retourne le
nombre de fois que cette voiture est louée.
4. Donner une requête SQL « select » qui permet de lister l’ensemble des voitures de parc ainsi
le nombre de fois que chaque voiture est louée (utiliser la fonction de la question 3).
5. Définir une vue « NbreLocationVoiture » comme le résultat de la requête qui liste les couples
(idv, nombre de locations)
6. Définir une vue « VoituresLouees » qui liste les voitures non encore rendues(encore en
location).
7. Définir une procédure PL/SQL « AjoutLocation » qui ajoute une ligne à la table locations. La
procédure doit vérifier d’abord si l’idclt figure dans la table client et que l’idv figure dans la
table voiture.
8. Définir une procédure PL/SQL « clientMarque » qui affiche pour chaque client le numéro et
la marque de la dernière voiture louée. Utiliser la fonction max pour déterminer la dernière
location effectué par un client donné.

Vous aimerez peut-être aussi