TP_3_PLSQL
Partie1 : les triggers
1. Créer un trigger « trig_messages » permettant d’afficher avant et après chaque insertion
dans la table OUVRIERS respectivement les messages suivants : « Début d’insertion »
et « Fin d’insertion »
2. Créer un trigger « trig_messages_specif » permettant d’afficher avant chaque insertion,
mise à jour ou suppression dans la table CHANTIERS respectivement les messages sui-
vants : « Insertion le 01/04/2017 à 9H » OU « Modification le 01/04/2017 à 9H » ou
« Suppression le 01/04/2017 à 9H », indiquant l’action effectuée, l’heure et la date.
3. Créer un trigger « Trig_nbrOuvriers » permettant de mettre à jour la colonne « NbrOu-
vriersAffectes » après chaque nouvel affectation ou retrait d’un ouvrier.
4. Créer une table d’historique nommée HISTORIQUES permettant de faire le traçage des
différentes requêtes LMD faites sur la table CHANTIERS.
Voici la structure logique de la table :
Nom colonne Type de données Description
Type_requete Varchar2(15) Ce champ permet de spé-
cifier le type d’opération
LMD effectué :
INSERT,
UPDATE or DELETE.
Date_operation Date Ce champ enregistre la
date de l’opération.
Heure Number Ce champ indique l’heure
de l’opération en respec-
tant ce format HH : MIN
Utilisateur Varchar2(20) Ce champ enregistre le
nom de l’utilisateur ayant
effectué cet opération.
5. Créer un trigger nommé « Trig_historique » permettant d’alimenter la table
HISTORIQUES après toutes opération LMD effectuée sur la table CHANTIERS.
6. Créer un trigger nommé « Trig_control » permettant d’interdire toute opération LMD
sur la table OUVRIERS pendant les weekends.
1/2
TP_3_PLSQL
Partie 2 :
ECRIRE LES TRIGGERS PERMETTANT DE :
1. Vérifier pour chaque nouvelle insertion dans la table EMPLOYEES si
l’employee_id <1000 alors il génère une exception affichant le message suivant «
Numéro employé inférieur à 10000 ».
2. Vérifier avant la mise à jour ou l’insertion dans la table employée l’existence du
numéro de département dans la table DEPARTMENTS.
3. Vérifier si les noms et les prénoms ajoutés ou mis à jour dans la table
EMPLOYEES commencent par majuscule ou non.
4. Interdire toutes modifications qui peuvent être apportées à la table EMPLOYEES
avant 6 heures du matin et après 23 heures du soir.
5. Historier les informations suivantes dans la table JOB_HISTORY à chaque fois
qu’un employé a changé de poste : ID de l'employé, ancien ID d'emplois, ancien
manager ID, la date d'embauche de l'employé pour la date de début, date de
système de date de fin. Mais si une ligne est déjà présente au niveau de la table
EMPLOYEES, la date de départ devrait être la date de cette ligne une de fin.
2/2