Postgres me renvoie cette erreur : loop variable of loop over rows must be record or row variable
Pourtant dans cette procédure je ne vois pas ce qui cloche, box2d est un type défini à partir de POSTGIS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
CREATE TYPE "public"."box2d" (INPUT = "public.box2d_in", OUTPUT = "public.box2d_out",
  INTERNALLENGTH = 16, EXTERNALLENGTH = 0,
  DELIMITER = ',', SEND = -,
  RECEIVE = -, ALIGNMENT = int4,
  STORAGE = plain);) :
Voici le procédure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
CREATE OR REPLACE FUNCTION "public"."box_parcelles" (text, text) RETURNS SETOF public.box2d AS'
/* New function body */
DECLARE
  rec public.box2d;
  tmp TEXT;
  p ALIAS for $2;
  s ALIAS for $1;
 
BEGIN
  FOR rec IN SELECT box2d(wkb_geometry) from parcelles where section=s and parcelle=p
  LOOP
    RETURN NEXT rec;
  END LOOP;
  RETURN;
 
END;
'LANGUAGE 'plpgsql' VOLATILE ;