Professional Documents
Culture Documents
1. Afficher la liste des départements, leur identifiant, leur nom ainsi leur salaire moyen (vous
pouvez utiliser un curseur implicite ou explicite)
DECLARE
CURSOR dept_cursor IS
FROM employees
BEGIN
END LOOP;
END;
2. Afficher la liste des départements, leur identifiant, leur nom ainsi leur salaire moyen.
BEGIN
FROM employees
END LOOP;
END;
3. Afficher la liste des employés du département dont e salaire moyen de tous les employés
dépasse 5000
DECLARE
v_dept_avg_salary NUMBER;
BEGIN
-- Afficher la liste des employés avec un salaire supérieur au salaire moyen du département
FROM employees
END LOOP;
END;
4. Afficher la liste des noms et prénoms des managers. pour chaque manager afficher les
noms et prénoms des employés qu’il dirige vous pouvez utiliser ces curceurs Cursor c1 is
select SELECT employee_id, first_name, last_name FROM employees where employee_id
in ( select manager_id from employees where manager_id is not null); Cursor c2(idM
employees.manager_id%type) is select last_name, first_name from employees where
manager_id=idM; var_c1 c1%rowtype; var_c2 c2%rowtype
DECLARE
CURSOR mgr_cursor IS
SELECT employee_id, first_name, last_name
FROM employees
WHERE employee_id IN (SELECT DISTINCT manager_id FROM employees WHERE
manager_id IS NOT NULL);
v_mgr_id employees.employee_id%TYPE;
BEGIN
-- Afficher la liste des managers
FOR mgr_rec IN mgr_cursor LOOP
DB
DECLARE
vsql varchar(1000);
BEGIN
vsql := 'CREATE TABLE Players (player_id number(10) primary key, last_name varchar2(50),
first_name varchar2(50), salary number(10,2), team_id number(10))';
vsql := 'CREATE TABLE Teams (team_id number(10) primary key, name varchar2(50) unique,
foundation_date date, players_number number(10), country varchar2(50))';
END;
p_player_id IN Players.player_id%type,
p_last_name IN Players.last_name%type,
p_first_name IN Players.first_name%type,
p_salary IN Players.salary%type,
p_team_id IN Players.team_id%type
) IS
v_count NUMBER;
BEGIN
RETURN;
END IF;
-- Vérifier que la référence de l'équipe existe
IF v_count = 0 THEN
RETURN;
END IF;
RETURN;
END IF;
END;
4. Modifier la procédure stockée précédente pour qu’elle retourne en plus le nombre TOTAL
des joueurs. 5. Une procédure stockée « proc_liste_joueurs » permettant de lister les
joueurs par equipe
UPDATE teams
SET players_number = (SELECT COUNT(*) FROM joueur WHERE team_id# = v_team_id)
WHERE team_id = v_team_id;
END;