## · Exercice 1 · Bloc simple avec variable
**Objectif :** Afficher un message personnalisé avec une variable.
**Code :**
DECLARE
v_nom VARCHAR2(20) := 'Amine';
BEGIN
DBMS_OUTPUT.PUT_LINE('Bonjour ' || v_nom || ' !');
END;
**À faire :** Modifie le code pour afficher ton propre prénom.
## · Exercice 2 · Bloc avec SELECT INTO
**Objectif :** Récupérer le nom d·un employé à partir de son ID.
**Code :**
DECLARE
v_nom employees.last_name%TYPE;
BEGIN
SELECT last_name INTO v_nom
FROM employees
WHERE employee_id = 101;
DBMS_OUTPUT.PUT_LINE('Nom : ' || v_nom);
END;
**À faire :** Change l·employee_id pour tester avec d·autres valeurs.
## · Exercice 3 · Curseur simple avec boucle
**Objectif :** Parcourir tous les employés d·un département.
**Code :**
DECLARE
CURSOR cur_emp IS
SELECT employee_id, last_name FROM employees WHERE department_id = 60;
v_id employees.employee_id%TYPE;
v_nom employees.last_name%TYPE;
BEGIN
OPEN cur_emp;
LOOP
FETCH cur_emp INTO v_id, v_nom;
EXIT WHEN cur_emp%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('ID: ' || v_id || ' - Nom: ' || v_nom);
END LOOP;
CLOSE cur_emp;
END;
**À faire :** Change le department_id. Ajoute une condition IF pour afficher seulement les noms commençan
## · Exercice 4 · Curseur avec RECORD et boucle FOR
**Objectif :** Utiliser un RECORD pour simplifier le code.
**Code :**
DECLARE
CURSOR cur_emp IS
SELECT employee_id, last_name FROM employees WHERE department_id = 90;
rec_emp cur_emp%ROWTYPE;
BEGIN
OPEN cur_emp;
LOOP
FETCH cur_emp INTO rec_emp;
EXIT WHEN cur_emp%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('ID: ' || rec_emp.employee_id || ' - Nom: ' || rec_emp.last_name);
END LOOP;
CLOSE cur_emp;
END;
**À faire :** Transforme ce code en boucle FOR rec IN cur_emp LOOP.
## · Exercice 5 · Curseur paramétré
**Objectif :** Créer un curseur dynamique selon un département donné.
**Code :**
DECLARE
CURSOR cur_emp(p_dept NUMBER) IS
SELECT employee_id, last_name FROM employees WHERE department_id = p_dept;
rec_emp cur_emp%ROWTYPE;
BEGIN
OPEN cur_emp(50);
LOOP
FETCH cur_emp INTO rec_emp;
EXIT WHEN cur_emp%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(rec_emp.last_name);
END LOOP;
CLOSE cur_emp;
END;
**À faire :** Demande à l·utilisateur d·entrer un department_id (avec une variable).