-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- SIU-GUARANI 3 -- Version 3.0.0 -- Function: f_modalidad_cursada_comision -- -- Retorna el nombre de las modalidades de cursadas definidas en la comision. -- -- Recibe: f_modalidad_cursada_comision(integer) -- 1. ID de la comision -- Retorna: -- 1. Nombre modalidad cursada -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION f_modalidad_cursada_comision(integer); CREATE OR REPLACE FUNCTION f_modalidad_cursada_comision(_comision INTEGER) RETURNS TEXT AS $BODY$ DECLARE cnt smallint; modalidad_cursada text; cur1 record; BEGIN cnt := 0; modalidad_cursada := NULL; -- Recupero el nombre de las modalidades de cursada FOR cur1 IN SELECT sga_modalidad_cursada.nombre as nombre FROM sga_comisiones_modalidad, sga_modalidad_cursada WHERE sga_comisiones_modalidad.comision = _comision AND sga_comisiones_modalidad.modalidad = sga_modalidad_cursada.modalidad LOOP IF cnt = 0 THEN modalidad_cursada := cur1.nombre; ELSE modalidad_cursada := modalidad_cursada || '/' || cur1.nombre; END IF; cnt := cnt + 1; END LOOP; RETURN modalidad_cursada; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; -- ++++++++++++++++++++++++++++++ Fin Function f_modalidad_cursada_comision(integer) ++++++++++++++++ -- REVOKE EXECUTE ON FUNCTION f_modalidad_cursada_comision (integer) FROM public; GRANT EXECUTE ON FUNCTION f_modalidad_cursada_comision (integer) to public; /* select * from f_modalidad_cursada_comision(28541); insert into sga_comisiones_modalidad (comision, modalidad) values (28541,'D'); */