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:

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;
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
 
CREATE OR REPLACE FUNCTION "BDR".setcumul(IN text, IN integer, IN integer, OUT integer)
  RETURNS integer AS ...
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

Auriez-vous une suggestion ?