a ver si deseas según lo que tienes en el retorno de la funcion SETOF tienes que devolver con un RETURN NEXT ademas de crear un ciclo para ello y tambien cambiaria la variable de retorno a RECORD por lo que te quedaria algo como esto
create or replace function models_data_rs() returns setof record as $$ declare ref refcursor; salida record; begin open ref for select * from models; loop --comenzar ciclo fetch ref into salida; --asignar el cursor a la variable de salida exit when not found; --sale del ciclo si la asignación anterior es null RETURN NEXT salida;--retorno end loop; --cierro el ciclo close ref; --cierro el cursor muy importante para liberar memoria end; $$ language plpgsql; PD: esto es a ojo, no lo probé aún ----- Mensaje original ----- De: "Freddy Martinez Garcia" <freddy311...@icloud.com> Para: "Arcel Labrada Batista" <alabra...@uci.cu> Enviados: Lunes, 9 de Febrero 2015 10:50:17 Asunto: Re: [MASSMAIL][pgsql-es-ayuda] ayuda sobre procedimientos almacenados y cursores gracias Arcel, es exactamente ese mi error... por otro lado este método me devuelve un cursor... cuando hago FETCH ALL IN 'nombre_cursor' que se lo pasé por parámetro (eso lo modifiqué luego) no me imprime la tabala, y si hago el select me trae los 24 registros que tengo en la tabla models... tengo que hacer algo más ?? disculpa la molestia hermano saludos cordiales ============================================= "El tamaño de tus logros depende del tamaño de tus metas." C++ and Qt Senior Developer Lic. Computer Science Buenos Aires, Argentina On Feb 9, 2015, at 12:43 PM, Arcel Labrada Batista < alabra...@uci.cu > wrote: quien es r?, estas abriendo el cursor y asignando el resultado de la consulta en r, te quedaría create or replace function models_data_rs() returns setof refcursor as $$ declare ref refcursor; begin open ref for select * from models; end; $$ language plpgsql; ----- Mensaje original ----- De: "Freddy Martinez Garcia" < freddy311...@icloud.com > Para: pgsql-es-ayuda@postgresql.org Enviados: Viernes, 6 de Febrero 2015 14:49:10 Asunto: [MASSMAIL][pgsql-es-ayuda] ayuda sobre procedimientos almacenados y cursores Hola a todos. soy nuevo usando postgres y tengo el siguiente código: create or replace function models_data_rs() returns setof refcursor as $$ declare ref refcursor; begin open ref for select * into r from models; end; $$ language plpgsql; hasta ahí va todo bien, el tema es que desde el mismo postgres cuando hago select models_data_rs(); postgres me da el siguiente error: ERROR: cannot open SELECT query as cursor CONTEXT: PL/pgSQL function models_data_rs() line 5 at OPEN ********** Error ********** ERROR: cannot open SELECT query as cursor SQL state: 42P11 Context: PL/pgSQL function models_data_rs() line 5 at OPEN cómo resuelvo el problema ?? saludos a todos ============================================= "El tamaño de tus logros depende del tamaño de tus metas." C++ and Qt Senior Developer Lic. Computer Science Buenos Aires, Argentina