Créer un trigger de type "After"
Bonjour,
Voici la procédure actuelle que j'utilise pour créer un trigger :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| CREATE OR REPLACE TRIGGER Schema.Table_PERIM_TG
BEFORE INSERT OR UPDATE
ON Schema.table
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
dim_info mdsys.sdo_dim_array;
requete varchar2(200);
BEGIN
requete := 'select m.diminfo FROM mdsys.user_sdo_geom_metadata m WHERE m.TABLE_NAME=''Table'' AND m.COLUMN_NAME=''SHAPE''';
execute immediate requete into dim_info;
:NEW.FLT_PERIMETRE := SDO_GEOM.SDO_LENGTH(:NEW.SHAPE,dim_info);
END;
/ |
Or je voudrai changer le type de ce trigger en "After" et non plus en "before"
J'utilise l'assistant de Toad pour créer le nouveau trigger mais j'obtiens le message d'erreur suivant :
Citation:
ORA-04084:
cannot change NEW values for this trigger type
La documentation Oracle me retourne ceci comme informations concernant cette erreur :
Citation:
Cause: New trigger variables can only be changed in before row insert or update triggers.
Action: Change the trigger type or remove the variable reference.
Or je veux rester en "After" mais j'ai besoin de mettre a jour le champ FLT_PERIMETRE de ma table. Mais je ne sais pas comment corriger cela.
Quelqu'un pourrait-il m'aider?
Merci beaucoup d'avance