SGBD TP_3_PLSQL

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

TP_3_PLSQL

PARTIE 1 : Fonction et procédure stockées / les exceptions

Ecrire les BLOCS PL/SQL suivant :

1. Un bloc anonyme permettant de créer les 2 tables suivantes :

OUVRIERS (Matricule, Nom, Prenom, PrixJr, Ref#)


CHANTIERS (Reference, Lieu, DateDebut, Duree, nbrOuvrierAffectes)

2. Une procédure stockée « proc_insertion_CHANTIER » permettant d’ajouter un nouveau


chantier. Cette procédure doit vérifier que la référence est UNIQUE. (NB : le champ
« nbrOuvrierAffectes » reste NULL). Utilisez cette procédure afin d’insérer 3 chantiers.

3. Une procédure stockée « proc_insertion_OUVRIER » permettant d’ajouter un nouvel


ouvrier. Cette procédure doit vérifier que :

- La matricule est UNIQUE

- La référence du chantier EXISTE

- Le prix du jour pour chacun des ouvriers est au minimum 10 dinars.

Utilisez cette procédure afin d’insérer 3 ouvriers.

4. Modifier la procédure stockée précédente pour qu’elle retourne en plus le nombre


TOTAL d’ouvriers.

5. Une fonction stockée « fn_fin_chantier » qui prend en paramètre la référence du


chantier et retourne la date de sa fin.

6. Une procédure stockée « proc_liste_ouvriers » permettant de lister les ouvriers par


chantier.

PARTIE 2 : 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 »

1/2
TP_3_PLSQL

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.

2/2

Vous aimerez peut-être aussi