From: | "Ernesto Verbanaz" <ernesto(dot)verbanaz(at)syswarp(dot)com(dot)ar> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: RV: problema con funciones que retornan cursor |
Date: | 2010-01-07 18:28:28 |
Message-ID: | 7F1D5DF216224FFFBD58EACEB564B2A1@syswarpuno |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> -----Mensaje original-----
> De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-
> owner(at)postgresql(dot)org] En nombre de Yudelsy Castellón García
> Enviado el: Martes, 05 de Enero de 2010 19:25
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: [pgsql-es-ayuda] RV: problema con funciones que retornan cursor
>
> Hola comunidad, hace varios días he estado trabajando con una función
> que me debe devolver como resultado tuplas de una consulta, como las
> columnas de las salidas pueden variar en cantidad decidí que la función
> retornaría un cursor. El problema es que no sé cómo llamar a la función
> para que muestre las tuplas resultantes.
>
> La función es más o menos como esta:
>
> CREATE or replace FUNCTION eliminar_tambien(refcursor) RETURNS SETOF
> refcursor AS $$
> BEGIN
> OPEN $1 FOR SELECT * FROM nmusuario;
> RETURN NEXT $1;
> END;
> $$ LANGUAGE plpgsql;
>
> La forma en que la llamo es:
>
> BEGIN;
>
> SELECT * FROM eliminar_tambien('a');
>
> FETCH ALL in a;
> COMMIT;
>
> y el resultado que me da es :
>
> Query result with 1 rows discarded.
> Query result with 8 rows discarded.
Prueba con esto, tal y como esta, solo cambia TABLA por alguna existente en
tu modelo:
CREATE FUNCTION reffunc(refcursor) RETURNS refcursor AS '
BEGIN
OPEN $1 FOR SELECT * FROM TABLA;
RETURN $1;
END;
' LANGUAGE plpgsql;
-- BEGIN;
SELECT reffunc('funccursor');
FETCH ALL IN funccursor;
-- COMMIT;
http://www.postgresql.org/docs/8.0/interactive/plpgsql-cursors.html
Saludos.
Ernesto
>
> Pero como hago para ver las tuplas? He buscado en el foro pero no
> encuentro una solución y en google tampoco aparece nada o por lo menos
> no lo encuentro.
>
> Agradecería cualquier ayuda. Muchas gracias de antemano
>
> --
> Saludos,
>
> Ing. Esneiker Enriquez Cabrera.
> Excelencia en Software.
> Desoft S.A. en Ciego de Ávila.
> Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba.
> email:eenriquez(at)cav(dot)desoft(dot)cu
> Teléfono: 53-33-266200
>
> --
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
> http://archives.postgresql.org/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Fernandos Siguenza | 2010-01-07 21:15:16 | Eficiencia en Funcion |
Previous Message | Fernando Hevia | 2010-01-07 15:36:18 | RE: [Spam] Consulta sobre pg_dump |