RE: RV: problema con funciones que retornan cursor

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

In response to

Browse pgsql-es-ayuda by date

  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