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.