Con la idea de huesos, hice una pequeña funcion, alli en vez del execute uso el return query execute....
Código:
CREATE OR REPLACE FUNCTION pa_consultaprueba(xtabla text)
RETURNS SETOF record AS
$BODY$
declare
sql text;
begin
sql := 'select codigo::text as codigo, descri::text as descri from '||xtabla;
return query execute sql;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
y lo invocas asi
Código:
select * from pa_consultaprueba('tabla')
as(codigo text, descri text);