Vous êtes sur la page 1sur 2

Université Sultan Moulay Slimane

Ecole Supérieur de Technologie


Département d’Informatique et des Langues
Béni Mellal

Travaux Pratiques N°8 : Fonctions PL/SQL


2ème année DUT Génie Informatique

N.B :
On reprend le schéma HR du TP n°7

1. Créez et appelez la fonction Q_JOB pour renvoyer un intitulé de poste.

a. Créez une fonction appelée Q_JOB pour renvoyer un intitulé de poste à une variable hôte.

b. Compilez le code, créez une variable hôte G_TITLE et appelez la fonction avec le code de poste
SA_REP. Interrogez la variable hôte pour consulter les résultats.

2. Créez une fonction nommée ANNUAL_COMP qui renvoie le salaire annuel à partir de deux paramètres :
le salaire mensuel de l'employé et une commission. La fonction doit traiter les valeurs NULL.

a. Créez et appelez la fonction ANNUAL_COMP, en lui transmettant les valeurs de salaire mensuel et de
commission. L'une de ces valeurs (ou les deux) peut être NULL, mais la fonction doit renvoyer un salaire
annuel non NULL. Le salaire annuel est défini par la formule de base suivante :

(salary*12) + (commission_pct*salary*12)
• NB. la fonction NVL(expr_1, expr_2)
Prend la valeur expr_1, sauf si expr_1 est NULL auquel cas NVL prend la valeur expr_2.
Une valeur NULL en SQL est une valeur non définie. Lorsque l'un des termes d'une
expression a la valeur NULL, l'expression entière prend la valeur NULL. D'autre part,
un prédicat comportant une comparaison avec une expression ayant la valeur NULL
prendra toujours la valeur faux. La fonction NVL permet de remplacer une valeur NULL
par une valeur significative.

b. Utilisez la fonction dans une instruction SELECT sur la table EMPLOYEES pour le service 80.
Université Sultan Moulay Slimane
Ecole Supérieur de Technologie
Département d’Informatique et des Langues
Béni Mellal

3. Créez la procédure NEW_EMP pour insérer un nouvel employé dans la table EMPLOYEES. La
procédure doit contenir un appel à la fonction VALID_DEPTNO permettant de vérifier si le numéro de
service indiqué pour le nouvel employé existe dans la table DEPARTMENTS.
a. Créez la fonction VALID_DEPTID pour valider un numéro de service indiqué. La fonction doit
renvoyer une valeur BOOLEAN.
b. Créez la procédure NEW_EMP pour ajouter un employé à la table EMPLOYEES. Une nouvelle ligne
doit être ajoutée à la table EMPLOYEES si la fonction renvoie TRUE. Si cette dernière renvoie
FALSE, la procédure doit alerter l'utilisateur par un message approprié.
Définissez des valeurs par défaut pour la plupart des paramètres. Les valeurs par défaut sont les
suivantes : 0 pour la commission, date actuelle pour la date d'embauche, 1000 pour le salaire, 30 pour le
numéro de service, SA_REP pour le poste et 145 pour le numéro du manager. Pour définir l'ID
d'employé, utilisez la séquence EMPLOYEES_SEQ. Indiquez le nom, le prénom et l'adresse
électronique de l'employé.

c. Testez la procédure NEW_EMP en ajoutant une nouvelle employée nommée Jane Harris au service 15.
Conservez la valeur par défaut des autres paramètres. Quel est le résultat ?

d. Testez la procédure NEW_EMP en ajoutant un nouvel employé nommé Joe Harris au service 80.
Conservez la valeur par défaut des autres paramètres. Quel est le résultat ?

Vous aimerez peut-être aussi