ENSIAS Année universitaire 2006-2007 Première année TP : PL/SQL (1/2) Soit le s
ENSIAS Année universitaire 2006-2007 Première année TP : PL/SQL (1/2) Soit le schéma relationnel suivant : E_TITRE (#TITRE VARCHAR2(25)); E_SERVICE(#NO NUMBER(7), NOM VARCHAR2(50)); E_EMPLOYE(#NO NUMBER(7), NOM VARCHAR2(50), PRENOM VARCHAR2(25), DT_ENTREE DATE, TITRE VARCHAR2(25), SERVICE_NO NUMBER(7), COMMENTAIRE VARCHAR2(200), SALAIRE NUMBER(11,2), PCT_COMMISSION NUMBER(4,2)); E_CLIENT(#NO NUMBER(7), NOM VARCHAR2(50), PRENOM VARCHAR2(25), TELEPHONE VARCHAR2(25), ADRESSE VARCHAR2(200), VILLE VARCHAR2(30), PAYS VARCHAR2(30), CP_POSTAL VARCHAR2(5), COMMENTAIRE VARCHAR2(200)); E_PRODUIT(#NO NUMBER(7), NOM VARCHAR2(50), DESCRIPTION VARCHAR2(200), PRIX_CONSEILLE NUMBER(11,2)); E_ENTREPOT(#NO NUMBER(7), ADRESSE VARCHAR2(200), VILLE VARCHAR2(30), PAYS VARCHAR2(30), CP_POSTAL VARCHAR2(5), TELEPHONE VARCHAR2(25)); E_STOCK(#NO NUMBER(7), PRODUIT_NO NUMBER(7), ENTREPOT_NO NUMBER(7), QTE_STOCK NUMBER(9), STOCK_SECURITE NUMBER(9), MAX_STOCK NUMBER(9), DT_STOCK DATE); E_COMMANDE(#NO NUMBER(7), CLIENT_NO NUMBER(7), DATE_COMMANDE DATE, DATE_LIVRAISON DATE, EMPLOYE_NO NUMBER(7), TOTAL NUMBER(11,2)); E_LIGNE(#NO NUMBER(7), COMMANDE_NO NUMBER(7), PRODUIT_NO NUMBER(7), PRIX NUMBER(11,2), QUANTITE NUMBER(9)); Sous SQL*Plus, exécuter la commande start creationBase.sql pour créer les tables de ce schéma relationnel. (creationBase.sql est un script sql contenant des commandes SQL). Exécuter la commande start remplirBase.sql pour insérer des données dans les tables. Exercice 1 (IF...THEN...ELSIF...ELSE…) Créer une table E_Augmentation comprenant les champs suivants : No Number(7), Augmentation Number(11,2), Date_Augmentation Date, Emp_No Number(7) 1- Ecrire un programme permettant : - de saisir en entrée le nom d’un employé - de mettre à jour le salaire de cet employé selon les conditions suivantes : si son année d’entrée dans la société est 1995, augmenter le salaire de 50%. si son année d’entrée dans la société est 1996, augmenter le salaire de 25%. si son année d’entrée dans la société est 1997, augmenter le salaire de 10%. 1/2 2- Modifier ce programme afin d’insérer dans la table E_Augmentation le montant d’augmentation, la date d’augmentation, le numéro de l’employé, ainsi que le champ No qui sert d’identifiant de ligne pour la table. Exercice 2 (Curseur, Instructions OPEN, FETCH, CLOSE, %FOUND) Ecrire un programme permettant : - la mise à jour du salaire de tous les employés de la table E_Employe suivant les conditions de l’exercice 1. - l’insertion des modifications dans la table E_Augmentation. Exercice 3 (Utilisation d’un curseur paramétré) Créer une table E_Resultat : E_Resultat (No Number(2), LB_Resultat Varchar2(60), VL_Resultat Number(11,2)) Ecrire un programme qui insère dans la table E_Resultat le nom de l’employé et son salaire pour les employés dont le salaire vérifie les conditions suivantes : - Si le salaire >3500, insérer dans la table E_Resultat les données suivantes : No --> <<No-programme>> LB_Resultat --> <<Variable_Nom_Employé>> a un salaire > 3500 VL_Resultat --> <<Variable_Salaire_Employé>> - Si le salaire >4500, insérer dans la table E_Resultat les données suivantes : No --> <<No-programme>> LB_Resultat --> <<Variable_Nom_Employé>> a un salaire > 4500 VL_Resultat --> <<Variable_Salaire_Employé>> Exercice 4 (Utilisation d’un curseur avec la boucle FOR…LOOP) Ecrire un programme permettant de faire le total des commandes gérées par chaque employé. Pour les employés qui ont géré des commandes, faire les insertions dans la table E_Resultat selon le schéma suivant : No --> <<No-programme>> LB_Resultat --> <<Nom_Employé>> totalise VL_Resultat --> <<Total des commandes gérées>> Exercice 5 (Curseur et clause CURRENT OF) Ecrire un programme permettant : - d’abaisser de 30% le prix conseillé des produits qui ne figurent sur aucune des commandes. - Insérer dans la table E_Resultat les produits concernés par la réduction : No --> <<No-programme>> LB_Resultat --> <<Variable_Numéro_Produit>> - <<Nom_Produit>> baisse de 30% VL_Resultat --> <<Variable_Prix_Conseillé_avant_de_30%>> 2/2 uploads/Industriel/ tp-pl-sql1-2.pdf
Documents similaires










-
33
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 24, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.0803MB