Re: how to return a result set from a stored procedure

From: Petar Jovanovic <jpetar(at)pinsoft(dot)com>
To: Hugo <htakada(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org, pgsql-general(at)postgresql(dot)postgresql(dot)org
Subject: Re: how to return a result set from a stored procedure
Date: 2005-06-11 13:20:17
Message-ID: 42AAE511.30202@pinsoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hugo wrote:

> Hi everybody
>
> I am trying to write a stored procedure that returns a result set but
> it is not working
> this is the function:
> ///
> CREATE OR REPLACE FUNCTION
> remisiones.fn_get_total_remitidoxprovision1("numeric")
> RETURNS SETOF record AS
> $BODY$
> begin
> select rm.provision as provision,
> drm.producto as producto,
> sum(drm.cantidad) as cantidad
> FROM remisiones.remisiones rm, remisiones.detalles_remision drm
> WHERE rm.remision = drm.remision and rm.provision = $1
> GROUP BY rm.provision, drm.producto
> ORDER BY rm.provision, drm.producto;
> end;$BODY$
>
> ///
> If I call this function from the interactive sql of pgadminIII I get
> this result:
> select * from fn_gert_total_remitidosxprovision(1)
> ---------------------------------------------------------------------------
> row refcursor
> 1 <unnamed porta1>
>
>
> is there a way to display the value of the rows returned, i need it
> becouse I need to use it in a Datawindow definition in an Powerbuilder
> app.
>
> thanks in advance
>
> Hugo
>
>
In PL/pgSQL you have to specify structure or records that function will
return. For example :
SELECT * FROM fn_get_total_remitidoxprovision1(1) AS (provision integer,
producto integer,cantidad float);

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Peter Fein 2005-06-11 13:25:47 Re: Version Control?
Previous Message John DeSoi 2005-06-11 13:08:04 Re: Version Control?