Search Postgresql Archives

Re: cursors and function question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/13/2018 10:22 AM, armand pirvu wrote:
Hi

Is there any elegant way not a two steps way I can output the cursor value at each step?


testtbl table has this content

     col1    |    col2    | col3
------------+------------+------
  E1         | CAT1       |    0
  E1         | CAT2       |    0
  E1         | CAT3       |    0
  E4         | CAT1       |    0
  E5         | CAT1       |    0
  E6         | CAT1       |    0
  E7         | CAT1       |    0


This works
BEGIN WORK;
DECLARE fooc  CURSOR FOR SELECT * FROM testtbl;
FETCH ALL FROM fooc;
CLOSE fooc;
COMMIT WORK;

     col1    |    col2    | col3
------------+------------+------
  E1         | CAT1       |    0
  E1         | CAT2       |    0
  E1         | CAT3       |    0
  E4         | CAT1       |    0
  E5         | CAT1       |    0
  E6         | CAT1       |    0
  E7         | CAT1       |    0


But
CREATE OR REPLACE FUNCTION foofunc()
    RETURNS 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;


CREATE OR REPLACE FUNCTION public.foofunc()
 RETURNS SETOF testtbl
 LANGUAGE sql
AS $function$
    SELECT * FROM testtbl;
$function$


test=> select * from foofunc();
 col1 | col2 | col3
------+------+------
 E1   | CAT1 |    0
 E1   | CAT2 |    0
 E1   | CAT3 |    0
 E4   | CAT1 |    0
 E5   | CAT1 |    0
 E6   | CAT1 |    0
 E7   | CAT1 |    0
(7 rows)




select foofunc();
             foofunc
-------------------------------
  ("E1        ","CAT1      ",0)

But I am looking to get

             foofunc
-------------------------------
  ("E1        ","CAT1      ",0)
  ("E1        ","CATs      ",0)
etc



Many thanks
— Armand



--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux