-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- SIU-GUARANI 3 -- Version 3.0.0 -- Function: sui_colegios_secundarios -- -- Inserta un registro en la tabla de colegios secundarios (sga_colegios_secundarios) -- Si existe el colegio, no lo inserta. -- -- Recibe: -- sui_colegios_secundarios() -- 1. ID Colegio -- 2. CUE - Codigo unico de escuelas -- 3. Nombre colegio -- 4. Localidad -- 5. Calle -- 6. Número -- 7. Codigo Postal -- 8. Sector (P - Privado / E - Estatal / S - Sin Informacion) -- 9. Observaciones -- -- Retorna: 0 - Existe el colegio / >0 - Id Colegio (Colegio agregado a la tabla) / -1 - Error al insertar -- -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION sui_colegios_secundarios(integer, integer ,varchar(100),integer ,varchar(100),varchar(10),varchar(15),char(1),varchar(200)); CREATE OR REPLACE FUNCTION sui_colegios_secundarios( _colegio integer, _cue integer, _nombre varchar(100), _localidad integer, _calle varchar(100), _nro varchar(10), _codigo_postal varchar(15), _sector char(1), _observaciones varchar(200)) RETURNS INTEGER AS $BODY$ DECLARE cnt smallint; BEGIN -- Verifico si existe el colegio. SELECT COUNT(*) INTO cnt FROM sga_colegios_secundarios WHERE colegio = _colegio; IF cnt > 0 THEN -- Actualizo datos del colegio. UPDATE sga_colegios_secundarios SET cue = _cue, nombre = _nombre, localidad = _localidad, codigo_postal = _codigo_postal, calle = _calle, nro = _nro, sector = _sector, observaciones = _observaciones WHERE colegio = _colegio; RETURN 0; END IF; -- Inserto registro en tabla de colegios INSERT INTO sga_colegios (colegio, cue, nombre, calle, nro, localidad, codigo_postal, sector, observaciones) VALUES (_colegio, _cue, _nombre, _calle, _nro, _localidad, _codigo_postal, _sector, _observaciones); -- Recupero y retorno el ID del Colegio insertado. RETURN (SELECT currval('sga_colegios_secundarios_seq')); END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; -- ++++++++++++++++++++++++++++++ Fin Function sui_colegios_secundarios ++++++++++++++++ -- REVOKE EXECUTE ON FUNCTION sui_colegios_secundarios (integer, integer ,varchar(100),integer ,varchar(100),varchar(10),varchar(15),char(1),varchar(200)) FROM public; GRANT EXECUTE ON FUNCTION sui_colegios_secundarios (integer, integer ,varchar(100),integer ,varchar(100),varchar(10),varchar(15),char(1),varchar(200)) to public; /* select sui_colegios_secundarios(1,23456,'San Martin',1,'Av. Callao','935','1200','P',NULL); */