Re: [pgsql-es-ayuda] Retorno en función

From: oscar arocha <arocha(dot)oscar(at)gmail(dot)com>
To: Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Retorno en función
Date: 2011-09-29 18:39:50
Message-ID: CAAFi2eregJh60-3nujhQX=_FQfb1JUsgRxfg7BWwGhgn8Jk6tw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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 <
lgarciam(at)vnz(dot)uci(dot)cu> 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:* pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:
> pgsql-es-ayuda-owner(at)postgresql(dot)org] *En nombre de *oscar arocha
> *Enviado el:* jueves, 29 de septiembre de 2011 12:15
> *Para:* pgsql-es-ayuda(at)postgresql(dot)org
> *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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gustavo Rosso 2011-09-29 18:45:20 RE: [Probable Correo Basura] Re: conexion
Previous Message Fabio Arias 2011-09-29 18:39:10 Re: conexion