urgente

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.

In response to

Responses

  • Re: urgente at 2005-03-24 14:07:38 from Alvaro Herrera

Browse pgsql-es-ayuda by date

  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