Bonjur à tous;
Je n'ai pas trouvé de réponse aussi j'espère ne pas faire de doublon avec d'autres fils de discussions.
La fonction trigger est appelée par un trigger et le tout semble bien fonctionner, mis à part que la valeur que je veux voir modifiée ne l'est pas.
Voici la fonction:
La fonction setcumul() retourne systématiquement une valeur de type integer comme le confirme son en-tête:
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 FUNCTION "BDR".lancer_setcumul() RETURNS trigger AS $BODY$ BEGIN -- UPDATE "BDR"."RELEVES_PT" SET NEW."CUMULD" = setcumul("ROUTE", "PRD", "ABD"); NEW."CUMULD" := "BDR".setcumul(NEW."ROUTE", NEW."PRD", NEW."ABD"); RAISE NOTICE 'Pour route=%, prd=%, abd=%, cumul=%', NEW."ROUTE", NEW."PRD", NEW."ABD", NEW."CUMULD"; RETURN NEW; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; ALTER FUNCTION "BDR".lancer_setcumul() OWNER TO postgres;
J'ai tenté de placer une requête de type INSERT INTO mais j'ai droit à un plantage et des logs de 10M chacun à cause d'une boucle infinie que je maitrise pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE OR REPLACE FUNCTION "BDR".setcumul(IN text, IN integer, IN integer, OUT integer) RETURNS integer AS ...
Auriez-vous une suggestion ?
Partager