80% ont trouvé ce document utile (5 votes)
3K vues3 pages

TP2 PLSQL Avec Correction PDF

Transféré par

khalid moussaid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
80% ont trouvé ce document utile (5 votes)
3K vues3 pages

TP2 PLSQL Avec Correction PDF

Transféré par

khalid moussaid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP2 PLSQL

Exercice1

Créez un bloc PL/SQL qui déclare le curseur EMP_CUR et permet de sélectionner le nom, le

salaire et la date d'embauche d'un employé, à partir de la table EMP. Traitez chaque ligne à

partir du curseur ; si le salaire est supérieur à 15 000 et que la date d'embauche est postérieure

à 01-FEB-1988, affichez le nom, le salaire et la date d'embauche de l'employé dans la fenêtre.

Exercice2

Créez un bloc PL/SQL permettant d'extraire, à partir de la table EMP, le nom de famille et le

numéro de département de chaque employé possédant une valeur EMPNO inférieure à 114. A

l'aide des valeurs extraites de la table EMP, remplissez deux tables PL/SQL, la première avec

les enregistrements correspondant aux noms de famille des employés et la deuxième avec leur

numéro de département. En utilisant une boucle, extrayez à partir des tables PL/SQL, les

informations relatives au nom et au numéro de département de chaque employé ; affichez

ensuite les résultats dans une fenêtre grâce à DBMS_OUTPUT.PUT_LINE. Procédez de la

sorte pour les 15 premiers employés contenus dans les tables PL/SQL.
Correction TP2 PLSQL

Exercice1

SET SERVEROUTPUT ON

DECLARE

CURSOR EMP_CUR IS

SELECT last_name,salary,hire_date FROM EMPLOYEES;

V_ENAME VARCHAR2(25);

V_SAL NUMBER(7,2);

V_HIREDATE DATE;

BEGIN

OPEN EMP_CUR;

FETCH EMP_CUR INTO V_ENAME,V_SAL,V_HIREDATE;

WHILE EMP_CUR%FOUND

LOOP

IF V_SAL > 15000 AND V_HIREDATE >= TO_DATE('01-FEB-1988','DD-MON-YYYY') THEN

DBMS_OUTPUT.PUT_LINE (V_ENAME || ' earns ' || TO_CHAR(V_SAL)|| ' and joined the
organization on ' || TO_DATE(V_HIREDATE,'DD-Mon-YYYY'));

END IF;

FETCH EMP_CUR INTO V_ENAME,V_SAL,V_HIREDATE;

END LOOP;

CLOSE EMP_CUR;

END;

SET SERVEROUTPUT OFF


Exercice2

SET SERVEROUTPUT ON

DECLARE

TYPE Table_Ename is table of employees.last_name%TYPE

INDEX BY BINARY_INTEGER;

TYPE Table_dept is table of employees.department_id%TYPE

INDEX BY BINARY_INTEGER;

V_Tename Table_Ename;

V_Tdept Table_dept;

i BINARY_INTEGER :=0;

CURSOR C_Namedept IS SELECT last_name,department_id from employees

WHERE employee_id < 115;

V_COUNT NUMBER := 15;

BEGIN

FOR emprec in C_Namedept

LOOP

i := i +1;

V_Tename(i) := emprec.last_name;

V_Tdept(i) := emprec.department_id;

END LOOP;

FOR i IN 1..v_count

LOOP

DBMS_OUTPUT.PUT_LINE ('Employee Name: ' || V_Tename(i) ||

' Department_id: ' || V_Tdept(i));

END LOOP;

END;

/
SET SERVEROUTPUT OFF

Vous aimerez peut-être aussi