return X number of refcursors from a function

Поиск
Список
Период
Сортировка
От Derek Liang
Тема return X number of refcursors from a function
Дата
Msg-id 4c723ab70812301433k3310b126i5a42b696c0392736@mail.gmail.com
обсуждение исходный текст
Ответы Re: return X number of refcursors from a function
Список pgsql-general
I tried to use the following code to retrieve the content of table1 4
times (in my application, the total number of refcursors that will be
returned is determined by the data in the database). I am getting the
error message says "ERROR:  cursor "<unnamed portal 2>" already in
use".

Thank you in advance!

dl

--Start of the code
--DROP FUNCTION myfunc(int);

CREATE FUNCTION myfunc(int) RETURNS SETOF refcursor AS $$
DECLARE i int;
    r refcursor;
BEGIN
    i := $1;
    WHILE i>0 LOOP
    RAISE NOTICE 'loop count %;', i;
    i := i-1;

    OPEN r FOR SELECT * FROM table1;
        RETURN NEXT r;
    END LOOP;

    RETURN;
END;
$$ LANGUAGE plpgsql;

BEGIN;
SELECT * FROM myfunc(4);
COMMIT;

В списке pgsql-general по дате отправления:

Предыдущее
От: "Eric Worden"
Дата:
Сообщение: Re: "disappearing" rows in temp table, in recursing trigger
Следующее
От: Tom Lane
Дата:
Сообщение: Re: "disappearing" rows in temp table, in recursing trigger