Bonjour,
Je voudrais réaliser un trigger Oracle (10g) qui interdirait à un champ d'une table A d'être modifié si un paramètre d'une autre table B n'est pas correctement renseigné.
--> Je m'explique
Si param de la table B est à 0 et que je cherche à modifier mon champ X
--> je peux modifier le champ X de ma table A
Si param de la table B est à 1 et que je cherche à modifier mon champ X
--> je ne peux pas modifier le champ_X de ma table A
--> J'envoie un message d'erreur type oracle ORAXXX
Pour l'instant j'ai réalisé un trigger sur modification de ma table A avec ce code
IF :NEW.CHAMP_X!= :OLD.CHAMP_X THEN
SELECT PARAM_TABLE INTO PARAM from TABLE_B
IF PARAM = '1' THEN -- ACTION NON AUTORISEE
DBMS_OUTPUT.PUT_LINE ('Action non autorisée');
rollback;
END IF;
Or, je ne vois pas le message d'erreur et le rollback n'est pas autorisé dans les triggers ....
Merci d'avance pour votre aide.
Partager