1. Classe : 3A
Année universitaire :2012-2013
Enseignante : Mme Hkimi Jihene
TP 3 : Les procédures et les fonctions
Exercice1
Chargez le bloc PL/SQL que vous avez créé à la question 2 du TP 1.
1. Ajoutez une section déclarative à ce bloc PL/SQL. Dans la section déclarative, déclarez les
variables suivantes :
a. Variable today de type DATE. Initialisez today avec SYSDATE.
b. Variable tomorrow de type today. Utilisez l'attribut %TYPE pour déclarer cette variable.
2. Dans la section exécutable, initialisez la variable tomorrow avec une expression qui calcule
la date de demain (ajoutez un à la valeur de today). Affichez la valeur de today et de
tomorrow après l'affichage de "Hello World".
3. Modifiez le script afin de convertir le bloc anonyme en procédure nommée greet.
4. Exécutez le script afin de créer la procédure.
5. Enregistrez le script sous le nom lab_03_sol.sql.
6. Créez et exécutez un bloc anonyme afin d'appeler la procédure greet.
Exercice2
Chargez le script lab_03.sql.
a. Supprimez la procédure greet en exécutant la commande suivante : DROP
PROCEDURE greet
b. Modifiez la procédure afin qu'elle accepte un argument de type VARCHAR2.
Nommez l'argument name.
c. Affichez "Hello <name>" à la place de "Hello World".
d. Enregistrez le script sous le nom lab_03_02_sol.sql.
e. Exécutez le script afin de créer la procédure.
f. Créez et exécutez un bloc anonyme afin d'appeler la procédure greet avec un
paramètre.
Exercice3
a. Créez et exécutez une fonction qui permet d’afficher le nom d’un département dont le
numéro est donné en paramètre. Enregistrez le script sous le nom lab_03_03_sol.sql.
2. b. Modifiez la fonction en une procédure afin qu’elle prenne en paramètre 2 arguments :
le numéro et le nom. Exécutez la procédure et enregistrez le script sous le nom
lab_03_04_sol.sql.
Exercice4
Créer une fonction qui permet de retourner le revenu annuel d’un employé selon la formule
suivante :
Si la commission > 0 : (salaire + commission) * 12
Sinon : salaire * 13
Enregistrez le script sous le nom lab_03_05_sol.sql.
Exercice5
Créer une fonction F_FACT qui permet de calculer la factorielle d’un nombre donné en
paramètre.
Exercice6
Créer une PROCEDURE PS_AUGMENTATION qui permet d’augmenter le salaire de tous
les employés de la table EMPLOYEES de 20%.
Exercice7
Créer une PROCEDURE PS_INCREASE qui permet d’augmenter le salaire des employés de
la table EMPLOYEES :
Si le salaire est entre 1000 et 2000 alors l’augmentation est de 0.3%,
Sinon si le salaire est supérieur à 2000 alors l’augmentation est de 0.5%.
La procédure prendra en paramètre l’id de l’employé et son salaire en utilisant le mode IN
OUT pour le paramètre salaire.
Dans le programme appelant, exécutez la procédure en affichant pour chaque employé : “ The
salary of <<last_name>> increased from <<ancien_salaire>> to<<nouveau salaire>> “.