Voici le code de la procédure:
CREATE OR REPLACE PROCEDURE secure_dml
IS
BEGIN
IF TO_CHAR (SYSDATE, 'HH24:MI') NOT BETWEEN '08:00' AND '18:00'
OR TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN') THEN
RAISE_APPLICATION_ERROR (-20205,
'Vous avez le droit de manipuler la table EMPLOYE entre les heures du travail ');
END IF;
END secure_dml;
/
Et le déclencheur pour la procédure:
CREATE OR REPLACE TRIGGER secure_employees
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
-- Appel de la procédure
secure_dml;
END secure_employees;
Exemple: On veut faire la mise à jour du salaire pour un employé numéro 204:
UPDATE EMPLOYEES
SET SALARY = SALARY * 1.2
WHERE EMPLOYEE_ID=204;
Voici le message d'erreur de PL/SQL Developer:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFSBDtP9s1OjMaOtiWzPzSIw8VKE_p1tYIyt5fV0UJqlWZTHkX8I10GvqgcTR2r3xi4x1o-5nbM1ZyGeyXoU_4MEbHalJzfxQZ2fInIhIT0lvpViJpAIm4Ypw22VPw6nzfT2aTL0e8I2Iw/s400/trigger.png)
Abed
Aucun commentaire:
Enregistrer un commentaire