From: | "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar> |
---|---|
To: | "Silvio Quadri" <silvioq(at)gmail(dot)com> |
Cc: | "Calabaza" <calalinux(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Function que retorna una tabla |
Date: | 2009-02-23 14:12:01 |
Message-ID: | 76A99F19229DC440909CF1B905F8012C0790B148@sar001998.Mapfre.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Silvio, gracias por responder, pero me estas respondiendo mi ultima consulta.
En tu ejemplo, lo que necesito es desarrollar function(), que sea capaz de devolver la tabla que me comentas.
La funcion debe devolver campos cuyos valores pueda cargar a mano.
Ej
Declare
Reg my_type;
Begin
For c1 in (select 1 as codigo, 'algo' as desc union select 2 as codigo, 'otro algo' as desc) loop
Reg.codigo := c1.codigo;
Reg.descripcion:= c1.desc;
Return next reg;
End loop;
--EN ESTA MISMA FUNCTION
Reg.codigo := 999;
Reg.descripcion:= 'desc inventada';
Return next reg;
End;
-----Mensaje original-----
De: Silvio Quadri [mailto:silvioq(at)gmail(dot)com]
Enviado el: Lunes, 23 de Febrero de 2009 11:50 a.m.
Para: Conrado Blasetti
CC: Calabaza; pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Function que retorna una tabla
El día 23 de febrero de 2009 11:27, Conrado Blasetti
<conrado(at)mapfre(dot)com(dot)ar> escribió:
> Bien, tomado en cuenta, lo que pasa, es que me resisto a pensar que no se puede, en Oracle select * from table( function() ), desde function, hacía lo que necesito, pero bien, será cuestión de adaptación!
>
> Gracias
Sí que se puede
Solo con ...
select * from function()
en el caso que function() devuelva una tabla es suficiente.
Si querés joinear ...
select * from function() a, tabla b where a.campo1 = b.campo1
funciona
Si querés recorrer function() en una sp y cambiar datos, sólo
necesitás hacer ...
for rresultado in select * from function
loop
rresultado.campo1 = f_cualquiera1();
rresultado.campo2 = f_cualquiera2();
rresultado.campo3 = f_cualquiera3();
return next rresultado;
end loop;
y listo ...
Lamentablemente, perdí el hilo de cómo venía la conversación, pero me
parece que lo que te estoy respondiendo es suficiente.
Saludos!
Silvio
From | Date | Subject | |
---|---|---|---|
Next Message | Jenaro Centeno Gómez | 2009-02-23 15:23:40 | Re: SQL Manager for PostgreSQL |
Previous Message | Silvio Quadri | 2009-02-23 13:50:22 | Re: Function que retorna una tabla |