> On Feb 13, 2018, at 12:26 PM, David G. Johnston <david.g.johns...@gmail.com> 
> wrote:
> 
> On Tuesday, February 13, 2018, armand pirvu <armand.pi...@gmail.com 
> <mailto:armand.pi...@gmail.com>> wrote:
> 
> CREATE OR REPLACE FUNCTION foofunc()
>    RETURNS text AS $$
> 
> select foofunc();
>             foofunc
> -------------------------------
>  ("E1        ","CAT1      ",0)
> 
> But I am looking to get
> 
>             foofunc
> -------------------------------
>  ("E1        ","CAT1      ",0)
>  ("E1        ","CATs      ",0)
> 
> 
> You need to specify SETOF
> 
> CREATE FUNCTION foofunc() RETURNS SETOF text AS
> 
> David J.

Thank you but


CREATE OR REPLACE FUNCTION foofunc()
   RETURNS setof text AS $$
DECLARE 
 var2   RECORD;
 cur  CURSOR FOR SELECT * from testtbl;
BEGIN
   OPEN cur;
    LOOP
      FETCH cur INTO var2;
         return  var2;
   END LOOP;
   CLOSE cur;
END; $$
LANGUAGE plpgsql;

ERROR:  RETURN cannot have a parameter in function returning set
LINE 10:          return  var2;
HINT:  Use RETURN NEXT or RETURN QUERY.


so I employed next



CREATE OR REPLACE FUNCTION foofunc()
   RETURNS setof  text AS $$
DECLARE 
 var2   text;
 cur  CURSOR FOR SELECT col1 from testtbl;
BEGIN
   OPEN cur;
    LOOP
      FETCH cur INTO var2;
         return next var2;
   END LOOP;
   CLOSE cur;
END; $$
LANGUAGE plpgsql;



and it just sits there

Any hints ?


Thank you
— Armand

Reply via email to