Re: execute block like Firebird does

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
>
>

In response to

Browse pgsql-general by date

  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