Telechargé par elhadirefki2001

TP 1 Procedure[1] (1)

publicité
TP1 | PL/SQL : Procédures
2ITE – 2
Remarque : Pour obtenir les descriptions des tables et des exemples de données, consultez l'annexe
"Descriptions des tables et des données".
1. Créez et appelez la procédure ADD_JOB, puis examinez les résultats.
a. Créez la procédure ADD_JOB pour insérer un nouveau poste dans la table JOBS. Indiquez le code et
l'intitulé du poste en utilisant deux paramètres.
CREATE OR REPLACE PROCEDURE ADD_JOB
(job_id IN jobs.job_id%TYPE, job_title IN jobs.job_title%TYPE)
IS
BEGIN
Insert into jobs(job_id,job_title)values(job_id,job_title);
END ADD_JOB;
/
b. Compilez le code et appelez la procédure en indiquant le code de poste IT_DBA et l'intitulé Database
Administrator. Interrogez la table JOBS pour consulter les résultats.
DECLARE
job_id varchar2(20) := 'IT_DBA';
job_title varchar2(30):='Database Administrator';
BEGIN
ADD_JOB(job_id,job_title);
COMMIT;
END;
/
ENSAJ
Pr Saadi Mostafa
AU : 22-23
TP1 | PL/SQL : Procédures
2ITE – 2
c. Appelez à nouveau la procédure, en transmettant le code de poste ST_MAN et l'intitulé Stock Manager.
Que se passe-t-il et pourquoi ?
DECLARE
job_id varchar2(20) := 'ST_MAN';
job_title varchar2(30):='Database Administrator';
BEGIN
ADD_JOB(job_id,job_title);
COMMIT;
END;
/
2. Créez une procédure nommée UPD_JOB pour modifier un poste dans la table JOBS.
ENSAJ
Pr Saadi Mostafa
AU : 22-23
TP1 | PL/SQL : Procédures
2ITE – 2
a. Créez une procédure nommée UPD_JOB pour mettre à jour l'intitulé du poste. Indiquez le code de
poste et le nouvel intitulé en utilisant deux paramètres. Ajoutez le traitement des exceptions requis si
aucune mise à jour ne s'effectue.
CREATE OR REPLACE PROCEDURE UPD_JOB
(job_id IN jobs.job_id%TYPE, job_title IN jobs.job_title%TYPE)
IS
BEGIN
UPDATE jobs
SET job_title = job_title
WHERE job_id = job_id;
Commit;
END UPD_JOB;
/
d. Compilez le code et appelez la procédure pour modifier l'intitulé de poste de IT_DBA en Data
Administrator. Interrogez la table JOBS pour consulter les résultats.
DECLARE
job_id varchar2(20) := 'IT_DBA';
job_title varchar2(30):='Data Administrator';
BEGIN
UPD_JOB(job_id,job_title);
COMMIT;
END;
/
ENSAJ
Pr Saadi Mostafa
AU : 22-23
TP1 | PL/SQL : Procédures
2ITE – 2
Vérifiez également le traitement des exceptions en tentant de mettre à jour un poste qui n'existe pas
(vous pouvez utiliser le code de poste IT_WEB et l'intitulé Web Master).
3. Créez une procédure nommée DEL_JOB pour supprimer un poste de la table JOBS.
a. Créez une procédure nommée DEL_JOB pour supprimer un poste. Ajoutez le traitement des
exceptions requis si aucun poste n'est supprimé.
b. Compilez le code et appelez la procédure en utilisant le code de poste IT_DBA. Interrogez la table
JOBS pour afficher les résultats.
Vérifiez également le traitement des exceptions en tentant de supprimer un poste qui n'existe pas
(utilisez le code de poste IT_WEB). Le message utilisé dans la section de traitement des exceptions de
la procédure doit s'afficher.
4. Créez une procédure nommée QUERY_EMP pour interroger la table EMPLOYEES, en extrayant le salaire et
le code de poste correspondant à un employé, une fois que vous disposerez de l'ID d'employé.
a. Créez une procédure qui renvoie une valeur à partir des colonnes SALARY et JOB_ID pour un ID
d'employé spécifique.
Utilisez des variables hôte pour les deux paramètres OUT relatifs au salaire et au code de
poste.
b. Compilez le code et appelez la procédure pour afficher le salaire et le code de poste correspondant à
l'ID d'employé 120.
c. Appelez à nouveau la procédure en transmettant l'ID d'employé (EMPLOYEE_ID) 300. Que se
passe-t-il et pourquoi ?
ENSAJ
Pr Saadi Mostafa
AU : 22-23
Téléchargement