chimaria... poco conozco9 de tu sistema y el objetivo de lo que quieres hacer.
En pocas paklabras, para hacer un retorno mediante
set of es necesario ir recorriendo los valores de una consulta. No de una actualización.
Cita: I think this is the easiest way to make this function work:
Drop the function
Change the function return type from "setof record" to "setof <table-name>"
("setof area" in this case)
Optionally, you may also like to change declaration "ret_row record;" to "ret_row area%rowtype;"
(it should work either way)
Recompile, and don't forget that functions returning setof must be called as
select * from func_name (...)
select func_name (...) will not work.
Tomado de
http://bytes.com/topic/postgresql/an...-setof-plpgsql
Según este ejemplo que funciona, estas manejando bien las sentencias. Pero al tratar de hacer uso de la función execute, debes tener en cuenta, que las variables están dentro de una cadena y podrías tener errores al momento de ejecutarlo. En teoría no debería pasar, pero hace poco me dí cuenta que al hacer un execute, no se toman los verdaderos valores de entrada de una función sino que lo toma como texto.
Por el contrario, si haces lo mismo con las variables idsede a lo que haces con id_concepto, la cadena se creará limpia y se ejecutará satisfactoriamente.