Vous n'êtes pas identifié(e).
Pages : 1
Bonjour
Je veux savoir s'il vous plait comment une fonstion en pgsql peut retourner un tableau et il maffiche un erreur
create or replace function segmenter() returns setof float[] as $$ -- type de retour de la fonction est float[]
declare
lg geometry(LineString);
PointForLinge geometry(Point) [] ;
tabfloat float array;
i integer;
m integer;
pt geometry(point);
begin
for lg in select the_geom from roadbrest
Loop
for pt in (select the_geom from projectionfinal where "the_geomRoad"=lg )
loop
m:=0;
PointForLinge[m]:=pt;
m:=m+1;
END loop;
if array_length(PointForLinge,1)> 0 then
for i in 0 .. array_length(PointForLinge,1)
LOOP
tabfloat[i]:=ST_Line_Locate_Point(lg,PointForLinge[i]) ;-- c'est le tableau de float que je veux le retourner
End LOOp
end if;
END LOOP;
return tabfloat; --ici le pbl
end
$$
LANGUAGE 'plpgsql';
et voici l'erreur que je le trouve
RETURN ne peut pas avoir un paramètre dans une fonction renvoyant un ensemble
LINE 30: return tabfloat;
merci de l'aide
Hors ligne
Essayez plutôt RETURN NEXT que RETURN tout court. C'est une fonction SETOF.
Guillaume.
Hors ligne
merci ça marcha bien maintenant
Hors ligne
Pages : 1