Re: execute block like Firebird does - Mailing list pgsql-general

From Pavel Stehule
Subject Re: execute block like Firebird does
Date
Msg-id CAFj8pRBYOyz45LHdH3HSQLCxfv894W4uXPZ+1jgDO4_hY5EKWQ@mail.gmail.com
Whole thread Raw
In response to Re: execute block like Firebird does  (PegoraroF10 <marcos@f10.com.br>)
List pgsql-general


2018-02-11 14:50 GMT+01:00 PegoraroF10 <marcos@f10.com.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


pgsql-general by date:

Previous
From: PegoraroF10
Date:
Subject: Re: execute block like Firebird does
Next
From: Steven Lembark
Date:
Subject: Re: execute block like Firebird does