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.

Responder a