From: | "Juan Carlos Badillo Goy" <badillo(at)cav(dot)desoft(dot)cu> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | urgente |
Date: | 2005-03-23 15:11:41 |
Message-ID: | 005a01c52fba$a137fa30$2401c0c0@badillo |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Cómo puedo ejecutar en un procedimiento almacenado una sentecia de sql formada en una cadena
ejemplo de lo que quiero lograr
CREATE OR REPLACE FUNCTION listar_grupos(varchar, varchar)
/* p1 garantiza la busqueda por un segmento del nombre, si es vacio se retornan todos los campos
p2 método de ordenamiento
*/
RETURNS SETOF "GRUPO" AS
$$
DECLARE
res "GRUPO"%rowtype;
cadsql varchar;
BEGIN
set cadsql = 'SELECT * FROM "GRUPO"';
IF $1 <> '' then set cadsql = cadsql + 'WHERE "GRUPO"."NOMBRE_GRUPO" LIKE (%' + $1 + '%) ';
IF $2 <> '' then set cadsql = cadsql + 'ORDER BY "GRUPO"."NOMBRE_GRUPO"' + $2;
FOR res IN
¿Cómo funcionaría algo parecido a esto?
execute cadsql
LOOP
RETURN NEXT res;
END LOOP;
RETURN;
END;
$$LANGUAGE plpgsql;
Nota: En realidad la interrogante es como formar un select internamente en un procedimiento almacenado y que me retorne el conjunto de registros.
Muchas gracias de antemano por su ayuda.
From | Date | Subject | |
---|---|---|---|
Next Message | Jairo Martín Miguel | 2005-03-23 18:50:37 | Varias cuestiones relacionadas con PostgreSQL |
Previous Message | Edwin Quijada | 2005-03-23 14:16:30 | RE: Desinstalacion de PSQL |