Advertisement
xlujiax

TRIGGER 2

Dec 5th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.92 KB | None | 0 0
  1. CREATE TABLE A_personass
  2. (
  3. COD_PERSONA NUMBER(6),
  4. NOM_PERSONA VARCHAR2(30),
  5. FEC_NACIMIENTO DATE,
  6. FEC_REGISTRO DATE,
  7. EDAD NUMBER(4),
  8. SUELDO NUMBER(7,2),
  9. APORTACION NUMBER(7,2)
  10. );
  11. --Desarrollar un trigger que, al insertar o actualizar una fila, calcule la edad y la aportación.
  12. CREATE OR REPLACE TRIGGER triggerPrueba
  13. before INSERT OR UPDATE ON A_personass
  14. FOR each ROW
  15. DECLARE
  16. vedad A_PERSONASS.EDAD%TYPE;
  17. vapor A_personass.aportacion%TYPE;
  18.  
  19. BEGIN
  20. vedad:= 0;
  21.   IF inserting THEN
  22.     SELECT ROUND((TO_NUMBER(TO_CHAR(SYSDATE,'yyyy')) - TO_NUMBER(TO_CHAR(:NEW.fec_nacimiento,'yyyy'))),0) INTO :NEW.edad FROM dual;
  23.     :NEW.aportacion := 11.5 * :NEW.sueldo / 100;
  24.   END IF;
  25.  
  26.   IF updating THEN
  27.     NULL;
  28.   END IF;
  29. END;
  30.  
  31.  
  32. INSERT INTO A_PERSONASS (cod_persona, nom_persona, fec_nacimiento, fec_registro, sueldo)
  33.                 VALUES (2, 'Mario', '15/01/2010', SYSDATE, 2000);
  34.  
  35.  
  36. SELECT * FROM A_PERSONASS;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement