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:silv...@gmail.com] 
Enviado el: Lunes, 23 de Febrero de 2009 11:50 a.m.
Para: Conrado Blasetti
CC: Calabaza; pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Function que retorna una tabla

El día 23 de febrero de 2009 11:27, Conrado Blasetti
<conr...@mapfre.com.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
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
    (envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org)

Responder a