Re: Duda sobre funciones - Aclaraciones

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

In response to

Browse pgsql-es-ayuda by date

  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