[10g] Trigger before insert
Dans une table, je souhaite renseigner la valeur de deux de ses champs, au moment d'un insert.
J'ai donc pensé à faire un trigger sur le after insert, et faire un update :
Erreur --> table mutante (http://sgbd.developpez.com/oracle/ora-04091/).
J'ai pris le problème dans l'autre sens, et j'ai cherché à utiliser le before insert :
Code:
1 2 3 4 5 6 7
| create or replace trigger CALCULPR.FORMAT_PRODUIT_ENTETE_PIECE before insert on CALCULPR.ENTETE_PIECE
for each row when ((upper(substr(NEW.IDART, 1, 3))) <> 'EPH')
begin
:NEW.RACINE_PDT := substr(:NEW.IDART, 1, length(:NEW.IDART) - 4);
:NEW.FINIT_PDT := substr(:NEW.IDART, length(:NEW.IDART) - 3, 4);
end;
/ |
Ca compile sans problème, mais ... ca n'a aucun effet. :cry:
J'ai mis un raise_application_error pour être certain que mon trigger est bien appellé : effectivement, il se déclanche bien sur l'insert.
:arrow: Je ne vois pas ce qui cloche dans mon trigger (j'en fait très rarement).
Quelqu'un aurait-il une idée ?
:hola: