RV: duda con funcion

From: Yudelsy Castellón García <yude(at)cav(dot)desoft(dot)cu>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RV: duda con funcion
Date: 2010-01-11 22:09:20
Message-ID: 000301ca930a$b98d6d50$2ca847f0$@desoft.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola comunidad, hace días he tenido problemas con retornar set de resultados
desde funciones. Me dieron una solución la cual consiste en la siguiente
funcion:

CREATE FUNCTION reffunc(refcursor) RETURNS refcursor AS '
BEGIN
OPEN $1 FOR SELECT * FROM nmusuario;
RETURN $1;
END;
' LANGUAGE plpgsql;

-- BEGIN;
SELECT reffunc('funccursor');
FETCH ALL IN funccursor;
-- COMMIT;

Esa solución funciona muy bien cuando la función no precisa de parámetros de
entrada, porque cuando hago lo siguiente:

CREATE FUNCTION eliminar(parametro character varying, refcursor) RETURNS
refcursor AS '
declare micursor refcursor;
BEGIN
OPEN micursor FOR SELECT * FROM nmusuario;
RETURN micursor;
END;
' LANGUAGE plpgsql;

-- BEGIN;
SELECT eliminar('probando','funccursor');
FETCH ALL IN funccursor;
-- COMMIT;

me da como error ERROR: cursor "funccursor" does not exist, la verdad es
que esto se hace muy simple en otros gestores de base de datos, no tengo
idea de por qué en postgres lo han complicado tanto.

Agradecería cualquier ayuda.

--
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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Julio Cesar Rodriguez Dominguez 2010-01-12 00:22:16 Re: RV: duda con funcion
Previous Message Listas 2010-01-11 20:58:11 RE: Vistas materializadas