Académique Documents
Professionnel Documents
Culture Documents
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 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
-- 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);
-- 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 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;