Bonjour,
J'ai un petit soucis lors de la création d'un trigger Oracle.
Pour tout enregistrement insérée ou modifiée d'une table, je cherche a mettre une valeur a 0 si une deuxieme valeur = 'TOTO'.
Pour le moment, j'ai fais ca :
Mais il ne marche pas comme je veux parce que le système qui rempli la base de donnée enregistre d'abord la fonction. Et met à jour ensuite que la valeur (qui n'est pas forcemment = à 0).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create or replace trigger MON_TRG before insert or update on MA_TBL for each row begin if :new.function = 'TOTO' then :new.valeur := 0; end if; end;
Le soucis est que lors de cette mise a jour de valeur, :new.function n'est pas défini car non mis à jour.
Je ne peux donc meme pas tester la valeur de ce champ.
Est il possible d'effectuer une requete sur l'enregistrement concerné pour que je puisse récupérer le contenu du champ function et ainsi tester sa valeur et mettre :new.valeur = 0 ?
Sinon, voyez vous une autre solution ?
Merci beaucoup
Worldofdada
Partager