0% ont trouvé ce document utile (0 vote)
19 vues2 pages

Procédures SQL pour gestion des employés

La procédure stockée utilise un curseur pour récupérer les noms et salaires de tous les employés d'un département spécifié. Les données sont stockées dans une table temporaire puis sélectionnées avant que la table ne soit supprimée.

Transféré par

Omar Rabeh
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 TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues2 pages

Procédures SQL pour gestion des employés

La procédure stockée utilise un curseur pour récupérer les noms et salaires de tous les employés d'un département spécifié. Les données sont stockées dans une table temporaire puis sélectionnées avant que la table ne soit supprimée.

Transféré par

Omar Rabeh
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 TXT, PDF, TXT ou lisez en ligne sur Scribd

*****************************************Suppression de

données :**************************************************************************
********************
3)Écrivez une procédure stockée qui supprime tous les employés
dont le salaire est inférieur à un certain montant spécifié.
----------------------------------------------------------
CREATE PROCEDURE DeleteEmployeesBySalary (
IN p_minimum_salary DECIMAL(10,2)
)
LANGUAGE SQL
BEGIN
DELETE FROM employees
WHERE salary < p_minimum_salary;
END
*****************************************Utilisation de
curseurs :*************************************************************************
*********************
4)Développez une procédure stockée qui utilise un curseur pour récupérer
tous les employés d'un département spécifique et renvoyer leur nom et leur
salaire.
----------------------------------------------------------
CREATE PROCEDURE GetEmployeesByDepartment (
IN p_department_id INT
)
LANGUAGE SQL
BEGIN
DECLARE v_employee_name VARCHAR(100);
DECLARE v_employee_salary DECIMAL(10,2);

-- Déclaration du curseur
DECLARE employee_cursor CURSOR FOR
SELECT name, salary
FROM employees
WHERE department_id = p_department_id;

-- Ouverture du curseur
OPEN employee_cursor;

-- Boucle pour récupérer les employés un par un


FETCH FROM employee_cursor INTO v_employee_name, v_employee_salary;

-- Boucle de traitement
WHILE (SQLSTATE = '00000') DO
-- Affichage ou traitement des données
-- Dans cet exemple, nous pourrions afficher les données, mais vous pouvez
les utiliser comme vous le souhaitez
-- Ici, nous affichons le nom et le salaire de l'employé
-- Vous pouvez utiliser ces données pour tout autre traitement nécessaire
-- Vous pouvez également les stocker dans une table temporaire ou les
retourner comme un résultat de la procédure stockée

-- Affichage du nom et du salaire de l'employé


-- Remplacez cet affichage par le traitement approprié que vous souhaitez
effectuer
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_employee_name || ', Salary: '
|| v_employee_salary);

-- Fetch suivant
FETCH FROM employee_cursor INTO v_employee_name, v_employee_salary;
END WHILE;

-- Fermeture du curseur
CLOSE employee_cursor;
END

***
CREATE PROCEDURE GetEmployeesByDepartment (
IN p_department_id INT
)
LANGUAGE SQL
BEGIN
DECLARE v_employee_name VARCHAR(100);
DECLARE v_employee_salary DECIMAL(10,2);

-- Création d'une table temporaire pour stocker les données


CREATE TABLE temp_employee_data (
employee_name VARCHAR(100),
employee_salary DECIMAL(10,2)
);

-- Déclaration du curseur
DECLARE employee_cursor CURSOR FOR
SELECT name, salary
FROM employees
WHERE department_id = p_department_id;

-- Ouverture du curseur
OPEN employee_cursor;

-- Boucle pour récupérer les employés un par un


FETCH FROM employee_cursor INTO v_employee_name, v_employee_salary;

-- Boucle de traitement
WHILE (SQLSTATE = '00000') DO
-- Stockage des données dans la table temporaire
INSERT INTO temp_employee_data (employee_name, employee_salary)
VALUES (v_employee_name, v_employee_salary);

-- Fetch suivant
FETCH FROM employee_cursor INTO v_employee_name, v_employee_salary;
END WHILE;

-- Fermeture du curseur
CLOSE employee_cursor;

-- Sélectionnez les données de la table temporaire si nécessaire


SELECT * FROM temp_employee_data;

-- Suppression de la table temporaire


DROP TABLE temp_employee_data;
END

Vous aimerez peut-être aussi