Gracias Lazaro, pero de la forma que lo planteas devuelve un solo valor, es
decir una sola coluumna, lo que necesito es lo siguiente

 funcion(){

SELECT calculo1 ....
SELECT calculo2....
SELECT calculo3....

RETURN arreglo
};


y que me regurese

|COL1     | COL2     | COL3    |
--------------------------------------------
|calculo1 | calculo3 | calculo3 |


no se si así se representa mejor

El 29 de septiembre de 2011 11:57, Lazaro Rubén García Martinez <
[email protected]> escribió:

>  Me parece que para lo que deseas hacer puedes crear un tipo de dato según
> tu necesidad y devolver ese tipo, como este ejemplo:****
>
> ** **
>
> CREATE TYPE public.ct_ prueba AS (****
>
>   dato1 INTEGER,****
>
>   dato2 INTEGER****
>
> );****
>
> ** **
>
> CREATE OR REPLACE FUNCTION public.fun_prueba (****
>
> )****
>
> RETURNS public.ct_prueba AS****
>
> $body$****
>
> DECLARE****
>
>   retorno ct_prueba;****
>
>   val1 integer;****
>
>   val2 integer;****
>
> BEGIN****
>
> ** **
>
>     --De esta via****
>
>     /*****
>
>     SELECT 2+2 INTO val1;****
>
>     SELECT 3+3 INTO val2;****
>
>    retorno.dato1 = val1;****
>
>     retorno.dato2 = val2;****
>
>     */****
>
>     ****
>
>     --De esta otra via****
>
>     SELECT 2+2, 3+2 INTO retorno;   ****
>
>     ****
>
>     RETURN retorno;****
>
> END;****
>
> $body$****
>
> LANGUAGE 'plpgsql'****
>
> VOLATILE****
>
> CALLED ON NULL INPUT****
>
> SECURITY INVOKER****
>
> COST 100;****
>
> ** **
>
> Saludos.****
>
> *De:* [email protected] [mailto:
> [email protected]] *En nombre de *oscar arocha
> *Enviado el:* jueves, 29 de septiembre de 2011 12:15
> *Para:* [email protected]
> *Asunto:* [pgsql-es-ayuda] Retorno en función****
>
> ** **
>
> Hola lista, espero estén muy bien, una vez mas recurriendo a su valiosa
> ayuda, Les comento estoy realizando una función que debe retornar un arreglo
> (pienso yo), lo cierto es que debo realizar varios select y devolverlos
> todos juntos en una sola consulta, es decir
>
> SELECT dato INTO arreglo[0] .....
> SELECT dato INTO arreglo[1] .....
> SELECT dato INTO arreglo[2] .....
> SELECT dato INTO arreglo[3] .....
> SELECT dato INTO arreglo[4] .....
> RETURN arreglo
>
> cada uno de los select realiza un calculo distinto, pero mi intencion es
> poder obtener todos esos valores en un solo arreglo, lo que se me ha
> complicado es que el retorno que obtengo es
>
> arreglo[0]:{valor}
>
> y debería ser solo {valor}
>
> Gracias de antemano
>
> --
> Ing. Oscar Arocha
> CIV 208.476
> 0416-4257379
> twitter: @ArochaOscar****
>



-- 
Ing. Oscar Arocha
CIV 208.476
0416-4257379
twitter: @ArochaOscar

Responder a