culture

Disponible uniquement sur Etudier
  • Pages : 2 (479 mots )
  • Téléchargement(s) : 0
  • Publié le : 23 avril 2014
Lire le document complet
Aperçu du document
Exercice I : Ecrire un bloc PL/SQL pour mettre à jour le taux horaire de l'employé E23 et lui donner la valeur 18.00. La solution demandée nécessite la vérification qu’il n’y a aucun autre employéqui a ce même tarif horaire (18.00). En cas d'échec, on affichera le message « autres employés ont déjà ce taux ».
Utiliser des curseurs implicites et les exceptions prédéfinies 'TOO_MANY_ROWS' et'NO_DATA_FOUND'.

DECLARE
num_empl Empl.no_empl%TYPE := 'p23';
taux Empl.taux_h%TYPE;
BEGIN
SELECT taux_h INTO taux FROM Empl WHERE taux_h = 18.00;
EXCEPTION
WHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUTLINE(‘autres employés ont déjà ce taux’)
WHEN NO_DATA_FOUND THEN
UPDATE Empl SET taux_h = 18.00 WHERE no_empl = num_empl;
END;


Exercice II : Le schéma de la base de données de REUSSITEest représenté comme suit :

CLI ( CODCLI, NOMCLI, ADRCLI, VILCLI, TELCLI, DROITTIMBRE, CATAEGFISC,
MATFISC, TYPCLI, TXREMCLI, NUMEX, DATDEBEX, DATFINEX)
ART ( CODART, DESART, PRIXUNIT, MARQUE,DATPER, TXTVA, QTESTK, QTESTKMIN)
CDECLI (NUMCDE, CODCLI#, DATCDE, TOTAL_HT_CDE)
LCDECLI (NUMCDE, CODART#, QTECDE, DELLIVSOUH, TOTLIG)
BLCLI (NUMBL, DATBL, TOTAL_HT_BL, TVABL)
LBLCLI (NUMBL#,(NUMCDE, CODART)#, QTELIVR, PRIXUNIT, TXREMCLI, TXTVA)

(NUMCDE, CODART)# veut dire que LBLCLI fait référence à LCDECLI

Ecrire une procédure PL/SQL non stockée avec un seul paramètre en entrée : lecode client, et qui permet de supprimer ce client ainsi que toutes les données qui lui sont associées dans les autres tables de la base.
Utilisez la bibliothèque DBMS_OUTPUT pour afficher les tracesdes données supprimées.

CREATE PROCEDURE supprimerClient (P_CODCLI CLI.CODCLI%TYPE) IS
NoBLASupprimer BLCLI.NUMBL%TYPE;
NoCdeASupprimer CDECLI.NUMCDE%TYPE;
-- Ce curseur détermine les numéros deslivraisons à supprimer
CURSOR lesNoLivraisonsASupprimer IS
SELECT DISTINCT D.NUMBL
FROM LBLCI D, CDECLI C
WHERE C.NUMCDE = D.NUMCDE AND C.CODCLI = P_CODCLI;
-- Ce curseur détermine les...
tracking img