From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | PegoraroF10 <marcos(at)f10(dot)com(dot)br> |
Cc: | "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: execute block like Firebird does |
Date: | 2018-02-11 14:38:35 |
Message-ID: | CAFj8pRBYOyz45LHdH3HSQLCxfv894W4uXPZ+1jgDO4_hY5EKWQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
2018-02-11 14:50 GMT+01:00 PegoraroF10 <marcos(at)f10(dot)com(dot)br>:
> but DO doesn´t return values, or it does ?
>
> execute block returns(ID Integer, Name varchar(50), LastInvoice Date, ...)
> as
> begin
> for select ID, Name from Customers where ... into ID, Name do begin
> select bla, bla, bla from functionX(ID) into ...;
> if ... then
> bla = X
> else
> bla = Y;
> if bla = XXX then
> suspend; -- here we return a record and as we are inside a loop we
> will return several records;
> end
> end
>
> As you can see, this entire block can be called from client dynamically,
> their result fields are defined when it runs and we can return a set of
> records. So, DO doen´t work this way, does it ?
>
You can use temporary function in PostgreSQL. DO command has not result.
Theoretically, you can use a cursor with transaction scope. It can be
filled in DO command and outer can be read by FETCH command.
Regards
Pavel
>
>
>
> --
> Sent from: http://www.postgresql-archive.org/PostgreSQL-general-
> f1843780.html
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Steven Lembark | 2018-02-11 15:52:41 | Re: execute block like Firebird does |
Previous Message | PegoraroF10 | 2018-02-11 13:50:46 | Re: execute block like Firebird does |