Il est possible qu'on crée une procédure ainsi qu'un déclencheur pour pouvoir sécuriser une table (exemple la table employees du schéma SCOTT ou HR).
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:
Abed
Aucun commentaire:
Enregistrer un commentaire