PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/03/2013 17:01:35

inesjg
Membre

fonction qui retourne un tableau des réelles

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

#2 15/03/2013 18:02:35

gleu
Administrateur

Re : fonction qui retourne un tableau des réelles

Essayez plutôt RETURN NEXT que RETURN tout court. C'est une fonction SETOF.


Guillaume.

Hors ligne

#3 15/03/2013 19:06:28

inesjg
Membre

Re : fonction qui retourne un tableau des réelles

merci ça marcha bien maintenant

Hors ligne

Pied de page des forums