From: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
---|---|
To: | "hector lozano" <hlozano60(at)yahoo(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Duda sobre funciones - Aclaraciones |
Date: | 2006-03-07 05:27:09 |
Message-ID: | c2d9e70e0603062127t25ec9fddt25f189ffeabc79e5@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 3/7/06, hector lozano <hlozano60(at)yahoo(dot)com> wrote:
> Hola gente:
>
> Sigo con el tema porque es evidente que no me di a entender correctamente.
> Ofrezco mis disculpas y le agradezco a Mario por la molestia que se tomó al
> contestar.
>
> En base al algorimto que envié:
> myquery = 'SELECT '
> Segun choice_de_operador Hacer
> 1 : query = myquery + ' a1, a2, a3 from TablaA '
> 2 : query = myquery + ' b1 from TablaB '
> ...
> 7 : query = myquery + ' g1, g2, g3, g4 from TablaG '
> 8 : query = myquery + ' h1, h2 from TablaH '
> FinSegun
> res = Consulta(query)
>
> Me refería a lo siguiente:
> 1) Dentro de la función en Postgres se puede generar una cadena de
> caracteres que contenga la consulta y posteriormente ejecutar esa cadena
> para que me devuelva la consulta? Algo así como la macrosustitución que
> existe en Clipper.
>
en plpgsql usas:
CREATE FUNCTION test() RETURNS void AS
$$
DECLARE
myquery varchar(100);
r record;
BEGIN
-- crea tu query con tu algoritmo
for r in execute myquery loop
-- sentencias
end loop;
return;
END;
$$ LANGUAGE 'plpgsql'
o puedes usar simplemente
EXECUTE myquery INTO r;
si sabes que va a regresar un solo registro (sino me equivoco si trae
mas de un registro el ultimo se queda en r)...
> 2) Considero que al tener distintas clases de consultas, debo almacenar el
> resultado de una de ellas en un TYPE definido, lo que haría que deba generar
> un TYPE para cada clase de consulta distinta. Ésto es así? O quizá se puede
> definir un TYPE genérico que pueda almacenar cualquiera de estas consultas?
>
record
> Saludos y gracias por la ayuda
> HLozano
>
--
Atentamente,
Jaime Casanova
"What they (MySQL) lose in usability, they gain back in benchmarks, and that's
all that matters: getting the wrong answer really fast."
Randal L. Schwartz
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2006-03-07 06:49:12 | disculpas desde ecuador fue:(Re: Problema en accesos a BD del Servidor) |
Previous Message | hector lozano | 2006-03-07 05:07:29 | Duda sobre funciones - Aclaraciones |