Decouverte de
pl/sql
Les bases concernées par ce TP sont "EMPLOYES"
avec les tables EMP et DEPT pour les 2 premiers exercices et
"CAFE" pour l’exercice 3.
Exercice 1
Ecrivez une procédure stockée d'augmentation des
commissions (avec, en paramètre, le nom de l'employé à augmenter).
La nommer "augmcomm".
Si le salaire du vendeur est <= à la moyenne
des salaires du job 'SALESMAN' alors sa commission est augmentée de
5% sinon sa commission est augmentée de 3%.
Exercice 2
Ecrivez une
procédure stockée hierarchie (avec, en paramètre, le nom de
l'employé).
Cette procédure doit afficher le nom de
l'employé et son job ainsi que le nom et le job de toute sa
hiérarchie. Vous devrez créer une table avant d’exécuter cette
procédure, cette table sera remplie via la procédure
hierarchie.
Exercice 3
Créer la table CA pour stocker le chiffre
d’affaire mensuel du café.
Structure de la table : mois sur 2 et tot
(9 dont 2 décimales)
Ecrire une procédure "CAMOIS" qui remplit la
table CA pour l’année passée en paramètre.
Extraction du mois :
MONTH(datefact)
Extraction de l’année :
YEAR(datefact)
Exercice 4
Erivez une fonction stockée "MEILLEUR" qui
retourne le nom du serveur ayant réalisé le meilleur CA pour
l'année transmise.
Vous pourrez tester votre fonction
ainsi :
Select NomFonction(paramètres) ;
LES TRIGGERS
Vous travaillerez
sur les tables emp et dept.
1) Ecriture du trigger
'supdept'
-
Ecrire un trigger qui refuse la suppression d'un département pour
lequel il existe des employés.
-
Tester le trigger avec un département contenant des employés puis
créer un nouveau département et tester sa suppression..
2) Ecriture du trigger
'ajoutemp'
-
Ajouter une colonne salmax dans la table dept. Cette colonne
contiendra le salaire maximum pouvant
être attribué à un employé du département.
-
Alimenter les salaires maxi ainsi : 10000 pour le département 10,
20000 pour le département 20 …
-
Ecrire un trigger qui refuse l'ajout d'un employé si le salaire
proposé est supérieur au salaire maximum accepté pour le
département.
-
Tester le trigger avec un salaire inférieur ou égal au salaire maxi
puis avec un salaire supérieur au salaire maxi.
3) Ecriture du trigger
‘modemp'
-
Effectuer le même contrôle que pour la question 2 mais cette fois
le contrôle devra être effectué lors de la modification du
salaire.