Bonjour,

Voici la procédure actuelle que j'utilise pour créer un trigger :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
ORA-04084:
cannot change NEW values for this trigger type
La documentation Oracle me retourne ceci comme informations concernant cette erreur :
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