Ayuda al obtener cursor de una funcion

From: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Ayuda al obtener cursor de una funcion
Date: 2011-10-03 14:06:57
Message-ID: 1317650817.75888.YahooMailNeo@web27408.mail.ukl.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenos días,

La presente es para solicitar una inquietud acerca de como obtener los resultados de un cursor de una funcion de este estilo.
-- DROP FUNCTION sigc_admidatounico.get_dato2(integer, character varying, date, numeric);

CREATE OR REPLACE FUNCTION sigc_admidatounico.get_dato2(p_iddato integer, p_nombredato character varying, p_fecha date, p_edad numeric)
  RETURNS refcursor AS
$BODY$
 DECLARE
  ocursor refcursor;
-- Uso de esta función: SELECT public.get_clientes(p1, p2, ... , pn,'cur') ; fetch all in cur;
 BEGIN
  if p_iddato!= null then
   OPEN oCursor FOR Select
    iddato, nombredato, fecha, edad
    from
    public.dato
    WHERE iddato = p_iddato;
 else
   OPEN oCursor FOR Select
    iddato, nombredato, fecha, edad
    from
    public.dato
    WHERE coalesce(iddato,'0') = coalesce(p_iddato,coalesce(iddato,'0'))
     and coalesce(nombredato,'') like coalesce('%'||p_nombredato||'%','%%')
     and coalesce(fecha,now()) = coalesce(p_fecha,coalesce(fecha,now()))
     and coalesce(edad,'0') = coalesce(p_edad,coalesce(edad,'0'))
    ;
 end if;
 RETURN oCursor;
 END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

Como se puede ver esta funcion retorna un refcursor. Ahora la pregunta es ¿como puedo visualizar los datos de ese refcursor retornado?

Gracias,

Alejandro

Posdata: no quiero hacerlo de esta forma SELECT public.get_clientes(p1, p2, ... , pn,'cur') ; fetch all in cur;
Donde cur es una variable de entrada del cursor, ya que quiero que el usuario solo ingrese los parametros que realmente corresponden a esta función y no meter un parámetro adicional.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alejandro Carrillo 2011-10-03 14:11:18 [OT] Algunas funciones útiles para desarrollo en postgresql
Previous Message Alejandro Carrillo 2011-10-03 11:14:53 Re: Refcursor + vb6 + oledb