From: | Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com> |
---|---|
To: | Ernesto Herrera <eherrera(at)estudiantes(dot)uci(dot)cu> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: ayuda sobre SRF |
Date: | 2010-06-10 04:30:09 |
Message-ID: | AANLkTimdi6gX4Ugty58ur_vUm-9JZF5LTcN_zaz_-Wzp@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 9 de junio de 2010 21:27, Ernesto Herrera
<eherrera(at)estudiantes(dot)uci(dot)cu>escribió:
> Hola!
> Tengo una función en PL/pgSQL que en su definición me construye una tabla
> temporal usando sql dinámico ya que sus atributos son variables y dependen
> de los parámetros de entrada, la función me retorna void y para ver los
> resultados tengo que ejecutar la función y luego seleccionar de la tabla
> temporal.
> No existe forma que una función me devuelva un conjunto sin tener que
> especificar los atributos al llamarla??
> saludos.
Puedes declara las parámetros de salida en la creación de tu función.
Por ejemplo:
CREATE OR REPLACE FUNCTION pagos_garantia(IN idcredito_ integer, OUT
o_monto numeric, OUT o_fecha date, OUT o_referencia text, OUT o_iddepgtia
integer, OUT o_cns integer)
RETURNS SETOF record AS
$BODY$
declare
begin
return query select ddgl.monto,fecha,referencia,ddgl.iddepgtia,cns from
cc_dep_gtias_liquidas dgl, cc_detalles_gtias_liquidas ddgl where
dgl.iddepgtia=ddgl.iddepgtia and idcredito=idcredito_;
return;
end;
$BODY$
LANGUAGE 'plpgsql;
select * from pagos_garantia( 2000 );
http://www.postgresql.org/docs/current/interactive/plpgsql-declarations.html
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2010-06-10 04:42:56 | Re: ayuda sobre SRF |
Previous Message | Alvaro Herrera | 2010-06-10 04:18:06 | Re: ayuda TRIGGER |