Advertisement
JUNIORCEDE1

Untitled

Jun 28th, 2017
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE TRIGGER tr_b_i_resutados
  2. before
  3. INSERT OR UPDATE ON Resultados_
  4. FOR EACH ROW
  5. DECLARE
  6. execep EXCEPTION;
  7. BEGIN
  8.     IF :NEW.puntos_jurado1 < 0 OR :NEW.puntos_jurado1 > 10 OR :NEW.puntos_jurado2 < 0 OR :NEW.puntos_jurado2 > 10 OR :NEW.puntos_jurado3 < 0 OR :NEW.puntos_jurado3 > 10 THEN
  9.         RAISE execep;
  10.     END IF;
  11.     EXCEPTION
  12.     WHEN execep THEN
  13.     RAISE_APPLICATION_ERROR(-20002, 'Los puntajes ingresados solo pueden estar entre 0 y 10');
  14. END;
  15.  
  16. CREATE OR REPLACE TRIGGER tr_b_i_observacion_r
  17. before
  18. INSERT OR UPDATE ON Resultados_
  19. FOR EACH ROW
  20. DECLARE
  21. sumatoria NUMBER :=0;
  22. promedio NUMBER :=0;
  23. mensaje VARCHAR(50);
  24. BEGIN
  25.     sumatoria := :NEW.PUNTOS_JURADO1+:NEW.PUNTOS_JURADO2+:NEW.PUNTOS_JURADO3;
  26.     promedio:= sumatoria/3;
  27.     IF promedio >= 7 THEN
  28.      mensaje := 'Medalla de Oro';
  29.     ELSIF promedio >= 4 AND promedio < 7 THEN
  30.         mensaje := 'Medalla de Plata';
  31.     ELSIF promedio>=0 AND promedio <4 THEN
  32.         mensaje := 'Medalla de Bronce';
  33.     END IF;
  34.     :NEW.observacion := mensaje;
  35.     :NEW.TOTAL_PUNTOS := sumatoria;
  36. END;
  37.  
  38. CREATE OR REPLACE TRIGGER tr_b_i_edad_participante
  39. before
  40. INSERT OR UPDATE ON Participante_
  41. FOR EACH ROW
  42. DECLARE
  43. edad NUMBER :=0;
  44. BEGIN
  45.     edad := (SYSDATE - :NEW.FECHA_PARTICIPANTE)/365;
  46.     :NEW.edad := edad;
  47. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement