Está en la página 1de 3

TP Fonctions et Procédures stockées

Exercice 1

Soit le schéma relationnel « Agence »:
Station (nomStation, capacité, lieu, région, tarif)
Activite (nomStation*, libellé, prix)
Client (id, nom, prénom, ville, région, solde)
Sejour (idClient*, station*, début, nbPlaces)

1. Créer une PS_NomClient qui prend en entrée l’id d’un client et qui affiche une chaîne
contenant le prénom et le nom du client.
2. Créer une fonction Activités qui prend en entrée le nom du station et produit une
chaîne de caractères contenant l’énumération des activités de la station (par
exemple, “Ski, Yoga, Massage”).
3. Créer une PS_Actualiser qui prend en entrée un pourcentage et le nom d’une station,
et augmente le tarif de la station et le prix de chacune de ses activités du
pourcentage indiqué.

Exercice 2
On considère le schéma relationnel suivant « gestion de fourniture » :
Produit (IDP, LibP, IDM#, PU_V, Qté)
Marque (IDM, Désignation, NBProd)
Fournir (IDF#, IDP#, Date, Qté, PU_A)
Fournisseur (IDF, RS, Ville, Tél)
1. Réaliser une fonction qui retourne le prix moyen des produits d’une marque donnée
2. Réaliser une fonction qui renvoie la quantité moyenne fournie d’un produit pendant
une période donnée
3. Réaliser une fonction qui retourne le libellé le plus long des produits (composé de
plus de caractère)

prime. salaire. Listez pour chaque produit. Réaliser une fonction qui permet d’afficher le libellé et le PU. Réaliser une fonction qui permet de modifier le PU d’un produit donné en retournant le nouveau classement des produits. le libellé. nom. augmentés ou diminués d’un pourcentage passé en paramètre 7. chef*) NB : chef est un employé. 2. le libellé. Procédure 2 : pour afficher tous les départements ainsi que leurs employés. NB : . sans utiliser le tri 5. pour chaque produit. une étoile est équivalente à une tranche de salaire de 1000DHs. des produits d’une famille donnée. Réaliser une fonction qui affiche pour tous les produits. 6. Par exemple : pour un salaire de 46000 DHs. la famille et un champ calculé qui aura pour alias ‘CodP’ et qui sera obtenu comme suit: NBcar_Fam (Avec NBCar représente le nombre de caractères du libellé et Fam représente la désignation correspondante à sa famille) 9. Sachant que l’IDP représente. l’écart entre le PU_A moyen et le PU_V. Réaliser une fonction qui retourne le nombre des produits dont le libellé est écrit en majuscules. nom. étudiez les cas de n=0 et n> au nombre total d’employés dans EMP . num_emp*) Emp (num_emp. Utilisez un curseur pour obtenir la liste des départements et les afficher. Procédure 3 : pour ajoutez une nouvelle colonne STARS varchar(100) dans la table EMP qui permet de stocker des étoiles « * » 4. Si une personne est listée alors toutes les personnes ayant le même salaire devraient l’être aussi. prenom. Procédure 5 : pour lister les employés qui sont sous la direction d’un chef (dont le num du chef est donnée par paramètre) 6. Réaliser une fonction qui renvoie le libellé et le pu de tous les produits classés par PU croissant. 8. Procédure 6 : Afficher tous les subordonnées d’un employé dont le num est donnée . num_deparatement*) Dept (num_dept. n est donnée en paramètre . ensuite passez le numéro du département à un curseur pour obtenir les employés de ce département. prime est le % du nombre de client affecté a l’employé par rapport au nombre totale des clients 1. son classement selon un PU croissant. libelle. 3. il faut 4 étoiles 5. Exercice 3 Sur le schéma relationnel suivant : Client (numc. Procédure 4 : pour insérer le nombre d’étoiles adéquat pour chaque employé et l’insérer dans la colonne STARS. 4. prenom. considérez le cas où plusieurs employés ont le même salaire. Procédure 1 : pour afficher la liste des n employés ayant les salaires les plus élevés. adresse.

7. Ecrire une fonction qui retourne le nombre d’employé subordonné d’un employé donnée en paramètre s’il est chef.. Avec leur niveau :
Niveau 1 : les subordonnée direct
Niveau 2 : les subordonnée de leur subordonnée direct 
. s’il manque le paramètre. Ecrire une procédure stocké qui affiche le nombre d’employé dans un département donnée (en 
paramètre) : . si le département existe. sinon retourne -1 . si le département n’existe pas. la procédure stocké retourne 1 . en paramètre. la procédure stocké retourne 2 et affiche le nombre d’employé 8.. la procédure retourne 0 .