-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- SIU-GUARANI 3 -- Version 3.0.0 -- Function: f_nombre_entidad -- -- -- Recibe: -- f_nombre_entidad(integer) -- 1.- ID entidad -- -- Retorna: varchar - Nombre de la entidad -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION f_nombre_entidad(integer); CREATE OR REPLACE FUNCTION f_nombre_entidad(_entidad INTEGER) RETURNS CHARACTER VARYING AS $BODY$ DECLARE _nombre_tabla text; _nombre_entidad text; rs RECORD; BEGIN -- Obtengo nombre de la tabla del subtipo de la entidad SELECT tabla INTO _nombre_tabla FROM sga_g3entidades, sga_g3entidades_subtipos WHERE sga_g3entidades.entidad_subtipo = sga_g3entidades_subtipos.entidad_subtipo AND sga_g3entidades.entidad = _entidad; -- Obtengo el nombre de la entidad FOR rs IN EXECUTE 'SELECT nombre FROM ' || _nombre_tabla || ' WHERE entidad = ' || _entidad LOOP _nombre_entidad := rs.nombre; END LOOP; -- Retorno el nombre de la entidad RETURN _nombre_entidad; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; -- ++++++++++++++++++++++++++++++ Fin Function f_nombre_entidad(integer) ++++++++++++++++ -- REVOKE EXECUTE ON FUNCTION f_nombre_entidad (integer) FROM public; GRANT EXECUTE ON FUNCTION f_nombre_entidad (integer) to public; /* select * from f_nombre_entidad(2) select * from sga_g3entidades where entidad > 20057 */