/************************************************************************************************************************/ /* Definicion del cuerpo del paquete PAC_NFL */ /************************************************************************************************************************/ CREATE OR REPLACE PACKAGE BODY PAC_NFL IS /****************************************************************************************************************/ /* Procedimiento Insertar_Conferencia */ /****************************************************************************************************************/ PROCEDURE insertar_conferencia(con_id IN NUMBER, con_nombre IN VARCHAR2) IS Integridad EXCEPTION; PRAGMA EXCEPTION_INIT(Integridad, -00001); BEGIN INSERT INTO Conferencia VALUES(con_id, con_nombre); EXCEPTION WHEN Integridad THEN DBMS_OUTPUT.PUT_LINE(CHR(10) || 'Codigo de la conferencia ya existe... Datos no insertados'); END insertar_conferencia; /****************************************************************************************************************/ /* Procedimiento Insertar_Division */ /****************************************************************************************************************/ PROCEDURE insertar_division(div_id IN NUMBER, div_nombre IN VARCHAR2, con_id IN NUMBER) IS Integridad EXCEPTION; PRAGMA EXCEPTION_INIT(Integridad, -02291); BEGIN INSERT INTO division VALUES(div_id, div_nombre, con_id); EXCEPTION WHEN Integridad THEN DBMS_OUTPUT.PUT_LINE(CHR(10) || 'Conferencia no existe . . . Datos no insertados'); END insertar_division; /****************************************************************************************************************/ /* Procedimiento Insertar_Equipo */ /****************************************************************************************************************/ PROCEDURE insertar_equi(equi_id IN NUMBER, equi_nombre IN VARCHAR2, equi_ciudad IN VARCHAR2, div_id IN NUMBER) IS Integridad EXCEPTION; PRAGMA EXCEPTION_INIT(Integridad, -02291); BEGIN INSERT INTO Equipo VALUES(equi_id, equi_nombre, equi_ciudad, div_id); EXCEPTION WHEN Integridad THEN DBMS_OUTPUT.PUT_LINE(CHR(10) || 'Division no existe. . . '); END insertar_equi; /****************************************************************************************************************/ /* Procedimiento Insertar_Partido2 */ /****************************************************************************************************************/ PROCEDURE insertar_partido2(p_id_partido IN NUMBER, v_equiNombreVis IN VARCHAR2, v_equiPuntosVis IN NUMBER, v_equiNombreLoc IN VARCHAR2, v_equiPuntosLoc IN NUMBER, p_fecha IN DATE) IS Integridad EXCEPTION; PRAGMA EXCEPTION_INIT(Integridad, -00001); v_equiIdLoc NUMBER; v_equiIdVis NUMBER; BEGIN SELECT equiid INTO v_equiIdLoc FROM Equipo WHERE equiciudad = v_equiNombreLoc; SELECT equiid INTO v_equiIdVis FROM Equipo WHERE equiciudad = v_equiNombreVis; INSERT INTO Partido VALUES(p_id_partido, v_equiIdLoc, v_equiPuntosLoc, v_equiIdVis, v_equiPuntosVis, p_fecha); actualizar_estadisticas(v_equiIdLoc, v_equiPuntosLoc, v_equiIdVis, v_equiPuntosVis); EXCEPTION WHEN Integridad THEN DBMS_OUTPUT.PUT_LINE(CHR(10) || 'Partido ya existe .... Datos no insertados'); END insertar_partido2; /****************************************************************************************************************/ /* Procedimiento actualizar_estadisticas */ /****************************************************************************************************************/ PROCEDURE actualizar_estadisticas(id_equiloc IN NUMBER, ptos_equi_loc IN NUMBER, id_equivis IN NUMBER, ptos_equi_vis IN NUMBER) IS BEGIN IF ptos_equi_loc < ptos_equi_vis THEN UPDATE Estadistica SET estpg = estpg + 1 WHERE equiid = id_equivis; UPDATE Estadistica SET estpp = estpp + 1 WHERE equiid = id_equiloc; ELSIF ptos_equi_loc > ptos_equi_vis THEN UPDATE Estadistica SET estpg = estpg + 1 WHERE equiid = id_equiloc; UPDATE Estadistica SET estpp = estpp + 1 WHERE equiid = id_equivis; ELSE UPDATE Estadistica SET estpe = estpe + 1 WHERE equiid IN (id_equivis, id_equiloc); END IF; UPDATE Estadistica SET estpuntosafavor = estpuntosafavor + ptos_equi_vis, estpuntosencontra = estpuntosencontra + ptos_equi_loc WHERE equiid = id_equivis; UPDATE Estadistica SET estpuntosafavor = estpuntosafavor + ptos_equi_loc, estpuntosencontra = estpuntosencontra + ptos_equi_vis WHERE equiid = id_equiloc; END actualizar_estadisticas; END PAC_NFL; /