Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.01 KB | None | 0 0
  1. CREATE OR REPLACE PACKAGE paq3
  2. IS
  3.  
  4. valor NUMBER(2);
  5. TYPE tcabezas IS TABLE OF persona.dni_c%TYPE INDEX BY BINARY_INTEGER;
  6. vcabezas tcabezas;
  7.  
  8. END;
  9. /
  10.  
  11. CREATE OR REPLACE TRIGGER ejer3repaso1
  12. before UPDATE ON persona
  13. BEGIN
  14.  
  15. paq3.valor := 1;
  16.  
  17. END;
  18. /
  19.  
  20. CREATE OR REPLACE TRIGGER ejer3repaso2
  21. before UPDATE ON persona
  22. DECLARE
  23.  
  24. CURSOR cursor1 IS SELECT DISTINCT dni_c FROM persona;
  25.  
  26. BEGIN
  27.  
  28. FOR i IN cursor1 LOOP
  29.    
  30.     paq3.vcabezas(paq3.valor) := i.dni_c;
  31.     paq3.valor := paq3.valor + 1;
  32.    
  33. END LOOP;
  34.  
  35.  
  36. END;
  37. /
  38.  
  39. CREATE OR REPLACE TRIGGER ejer3repaso3
  40. before UPDATE ON persona
  41. FOR each ROW
  42. BEGIN
  43.  
  44.     FOR i IN 1..24 LOOP
  45.    
  46.             DBMS_OUTPUT.put_line( paq3.vcabezas(i));
  47.           IF(:NEW.dni = :old.dni_c) THEN  
  48.                IF(:NEW.dni_c = paq3.vcabezas(i)) THEN
  49.                       RAISE_APPLICATION_ERROR(-20500, 'No puede depender de otro cabeza porque ya es cabeza de familia');
  50.                END IF;
  51.           END IF;      
  52.            
  53.     END LOOP;
  54.    
  55. END;
  56. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement