From: | Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu> |
---|---|
To: | oscar arocha <arocha(dot)oscar(at)gmail(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Retorno en función |
Date: | 2011-09-29 18:56:42 |
Message-ID: | 294D3D02D5E18D42827B2ECFEADEB6881E38F1AF79@mx-interno.vnz.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Intenta de la forma que dice Alvaro:
Select * from función();
Saludos.
De: oscar arocha [mailto:arocha(dot)oscar(at)gmail(dot)com]
Enviado el: jueves, 29 de septiembre de 2011 02:40
Para: Lazaro Rubén García Martinez
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Retorno en función
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<mailto: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> [mailto: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<mailto: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<tel:0416-4257379>
twitter: @ArochaOscar
--
Ing. Oscar Arocha
CIV 208.476
0416-4257379
twitter: @ArochaOscar
From | Date | Subject | |
---|---|---|---|
Next Message | Fabio Arias | 2011-09-29 18:56:52 | Re: [Probable Correo Basura] Re: conexion |
Previous Message | Gustavo Rosso | 2011-09-29 18:54:27 | RE: [Probable Correo Basura] Re: conexion |