El jue, 21-05-2009 a las 09:34 -0500, Luis A. Zevallos Cárdenas escribió: > gracias por responder pero necesito que me sirva la funcion > > select * FROM sch_desarrollo.fn_size_tables() Tu función quedaría así:
REATE OR REPLACE FUNCTION fn_size_tables() RETURNS record AS $BODY$DECLARE reg RECORD; BEGIN --Tamaño de los objetos en megabytes select MB into reg from (SELECT relname, round(((relpages*8)::double precision/1024::double precision)::numeric,2) as MB FROM pg_class ORDER BY relpages DESC) as foo; return reg; END;$BODY$ LANGUAGE 'plpgsql' **************************************************************************************************************** select fn_size_tables() --- CONSULTA o así, CREATE OR REPLACE FUNCTION fn_size_tables() RETURNS record AS $BODY$DECLARE reg RECORD; BEGIN --Tamaño de los objetos en megabytes select relname, MB into reg from (SELECT relname, round(((relpages*8)::double precision/1024::double precision)::numeric,2) as MB FROM pg_class ORDER BY relpages DESC) as foo; return reg; END;$BODY$ LANGUAGE 'plpgsql' **************************************************************************************************************** select fn_size_tables() --- CONSULTA "(0.39,pg_proc)" Pero puede ser que desees implementar otra cosa y no es devolviendo un record como se logra .... prueba SETOF ... algo -- Saludos, Gilberto Castillo Edificio Beijing. Miramar Trade Center. Etecsa. Miramar, La Haban.Cuba. -- TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net