Vous êtes sur la page 1sur 7

Révision PL/SQL

1- Écrire un bloc PL/SQL qui permet de saisir le code d’un


employé et d’afficher son salaire annuel. Utiliser une
variable globale et une variable de substitution.

ACCEPT p_code PROMPT ‘Donner le code de l’employé’;


VARIABLE g_salann NUMBER;
BEGIN
SELECT sal * 12 INTO :g_salann FROM emp
WHERE empno=&p_code;
END;
/
PRINT g_salann;
2- Écrire un bloc PL/SQL qui permet de saisir le nom d’un
employé, d’affecter toute la ligne de l’employé dont le nom
a été saisi dans un enregistrement, et d’afficher son salaire
annuel. Utiliser une variable globale et une variable de
substitution.

ACCEPT p_nom PROMPT ‘Donner le nom de l’employé’;


VARIABLE g_salann NUMBER;
DECLARE
Emp_rec emp%ROWTYPE;
BEGIN
SELECT * INTO Emp_rec FROM emp
WHERE ename = &p_nom;
:g_salann := Emp_rec,sal * 12;
END;
/
PRINT g_salann;
3- Créez et exécutez un bloc PL/SQL qui prenne en compte
deux nombres grâce à des variables de
substitution SQL*Plus. Il faut diviser le premier nombre par
le second, et ajouter le résultat au second
nombre. Le résultat doit être stocké dans une variable
PL/SQL et affiché à l’écran.
Méthode 1
SET VERIFY OFF
VARIABLE g_result NUMBER
ACCEPT p_num1 PROMPT ‘Veuillez saisir le premier nombre: ’;
ACCEPT p_num2 PROMPT ‘Veuillez saisir le deuxième nombre: ’;
DECLARE
v_num1 NUMBER(9,2) := &p_num1;
v_num2 NUMBER(9,2) := &p_num2;
BEGIN
:g_result := (v_num1/ v_num2) + v_num2;
END;
/
PRINT g_result SET VERIFY OFF
SET VERIFY ON SET VERIFY ON
Méthode 2
SET SERVEROUTPUT ON
ACCEPT p_num1 PROMPT ‘Veuillez saisir le premier nombre: ’;
ACCEPT p_num2 PROMPT ‘Veuillez saisir le deuxième nombre: ’;
DECLARE
v_num1 NUMBER(9,2) := &p_num1;
v_num2 NUMBER(9,2) := &p_num2;
BEGIN
dbms_output.put_line((v_num1/ v_num2)+ v_num2);
END;
/
4- Créez un bloc PL/SQL qui sélectionne le plus grand
numéro de département (DEPTNO) de la table
DEPT et le stocke dans une variable SQL*Plus. Affichez
le résultat à l’écran.
Méthode 1 (utilisation d’une variable globale)
VARIABLE g_max_deptno NUMBER
DECLARE
v__max_deptno NUMBER;
BEGIN
SELECT MAX(deptno) INTO v_max_deptno FROM dept;
: g_max_deptno:= v_max_deptno;
END;
/
PRINT g_max_deptno
Méthode 2 (utilisation d’une variable locale)
SET SERVEROUTPUT ON
DECLARE
v__max_deptno NUMBER;
BEGIN
SELECT MAX(deptno) INTO v_max_deptno FROM dept;
Dbms_output.put_line(v_max_deptno);
END;
/

Vous aimerez peut-être aussi