Hola a todos, estoy tratando de hacer una función en postgres con el objetivo de obtener valores de una vista pero la función me da error. Pongo aquí el código de la función para que la vean y si alguien puede me de una solución, esto es una prueba que estoy haciendo para ver si me funciona, luego le añadiré más funcionalidad para que de verdad la función sea operativa y devuelva lo que me hace falta.
CREATE OR REPLACE FUNCTION prueba(aid_unidad integer) RETURNS SETOF vw_nmunidad_org AS $$ DECLARE control integer; cadena varchar; unidad integer; padre integer; s varchar; r_s vw_nmunidad_org%rowtype; BEGIN control=0; cadena=''; unidad=aid_unidad; s='SELECT * FROM vw_nmunidad_org'; s = s||';'; raise notice '%', s; for r_s in execute s loop return next r_s; end loop; return; END; $$ LANGUAGE 'plpgsql'; El error que da es el siguiente: NOTICE: SELECT * FROM vw_nmunidad_org; ERROR: set-valued function called in context that cannot accept a set CONTEXT: PL/pgSQL function "eliminar" line 39 at RETURN NEXT ********** Error ********** ERROR: set-valued function called in context that cannot accept a set SQL state: 0A000 Context: PL/pgSQL function "eliminar" line 39 at RETURN NEXT 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: <mailto:eenriq...@cav.desoft.cu> eenriq...@cav.desoft.cu