Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.07 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE OEFENING2P53 AS
  2. TYPE type_rec_uitvoeringen IS RECORD(cursus uitvoeringen.cursus%TYPE,begindatum uitvoeringen.begindatum%TYPE);
  3. TYPE type_tab_uitvoeringen IS TABLE OF type_rec_uitvoeringen;
  4. TYPE type_tab_cursus IS TABLE OF uitvoeringen.cursus%TYPE INDEX BY PLS_INTEGER;
  5. TYPE type_tab_begindatum IS TABLE OF uitvoeringen.begindatum%TYPE INDEX BY PLS_INTEGER;
  6. t_cursus type_tab_cursus;
  7. t_begindatum type_tab_begindatum;
  8. t_uitvoeringen type_tab_uitvoeringen;
  9. BEGIN
  10.   SELECT DISTINCT u.cursus, u.begindatum
  11.   BULK COLLECT INTO t_uitvoeringen
  12.   FROM  uitvoeringen u, inschrijvingen i
  13.   WHERE u.cursus = i.cursus AND u.begindatum = i.begindatum
  14.   GROUP BY u.cursus, u.begindatum
  15.   HAVING COUNT(*) > 3;
  16.  
  17.   FOR i IN 1..t_uitvoeringen.COUNT LOOP
  18.     t_cursus(i) := t_uitvoeringen(i).cursus;
  19.     t_begindatum(i) := t_uitvoeringen(i).begindatum;
  20.   END LOOP;
  21.  
  22.   FORALL i IN 1..t_uitvoeringen.COUNT
  23.     UPDATE uitvoeringen
  24.     SET locatie = 'ANTWERPEN'
  25.     WHERE cursus = t_cursus(i)
  26.     AND begindatum = t_begindatum(i);
  27.     COMMIT;
  28. END OEFENING2P53;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement