Re: Returning Rows in Procedure
| От | Pavel Stehule |
|---|---|
| Тема | Re: Returning Rows in Procedure |
| Дата | |
| Msg-id | BANLkTimM_vdS1Z8qR82uEBT=EUxPEYu1ew@mail.gmail.com обсуждение исходный текст |
| Ответ на | Returning Rows in Procedure (Adarsh Sharma <adarsh.sharma@orkash.com>) |
| Ответы |
Re: Returning Rows in Procedure
|
| Список | pgsql-general |
Hello
you have to use a dynamic sql
look on statement
FOR r IN EXECUTE
or RETURN QUERY EXECUTE
Regards
Pavel Stehule
2011/5/24 Adarsh Sharma <adarsh.sharma@orkash.com>:
> Dear all,
>
> I need to return the rows of a table which was also created in that
> procedure.
>
> I know it is very easy when the table is existed before and we can specify
> like this to return
>
> create function a(integer) returns setof exist_table as $$
>
> But it gives error when the table is also created in the procedure like
> below :
>
> create function a(integer) returns setof record as $$
> declare
> a text;
> begin
> execute 'insert into a values('asdd');
> execute 'insert into a values('affffsdd');
> execute 'insert into a values('affsdd');
> execute 'insert into a values('ashjgdd');
> execute 'insert into a values('asfjfgddd');
>
> ---Now i want to return the rows of a
> DECLARE
> r a%ROWTYPE;
> BEGIN
> FOR r in SELECT * FROM a
> LOOP
> RETURN NEXT r;
> END LOOP;
> RETURN;
> END;
> END;
> $$ LANGUAGE 'plpgsql' ;
>
> ERROR: relation "user_news_tmp2" does not exist
> CONTEXT: compilation of PL/pgSQL function "create_user_report2" near line
> 22
>
> How to achieve this ?
>
> Thanks & best Regards,
> Adarsh
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
В списке pgsql-general по дате отправления: