Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.13 KB | None | 0 0
  1. DECLARE
  2. TYPE Typ_Rec_Osr IS RECORD
  3. (Id Osrodki.Id_osrodek%TYPE,
  4. Nazwa Osrodki.Nazwa_o%TYPE) ;
  5. TYPE NT_Osrodki IS TABLE OF Typ_Rec_Osr ;
  6. VT_Osrodki NT_Osrodki := NT_Osrodki();
  7. i NUMBER := 0 ;
  8. CURSOR c_Osrodki IS SELECT Id_osrodek, Nazwa_o FROM Osrodki ;
  9. PROCEDURE inicjujTablice(VT_Osr IN OUT NOCOPY NT_Osrodki) IS
  10. BEGIN
  11. FOR v_Rec_Osr IN c_Osrodki LOOP
  12. i := c_Osrodki%ROWCOUNT ;
  13. VT_Osrodki.EXTEND ;
  14. VT_Osr(i) := v_rec_Osr ;
  15. DBMS_OUTPUT.Put_Line(VT_Osr(i).Id || ' ' || VT_Osr(i).Nazwa) ;
  16. END LOOP ;
  17. END;
  18. PROCEDURE kasujNiepotrzebne(VT_Osr IN OUT NOCOPY NT_Osrodki) IS
  19. l PLS_INTEGER;
  20. BEGIN
  21. FOR i IN VT_Osr.FIRST .. VT_Osr.LAST LOOP
  22. SELECT COUNT(1) INTO l FROM egzaminy WHERE VT_Osr(i).Id = id_osrodek;
  23. IF l = 0 THEN
  24. VT_Osr.DELETE(i);
  25. END IF;
  26. END LOOP ;
  27. END;
  28. BEGIN
  29. inicjujTablice(VT_Osrodki);
  30. DBMS_OUTPUT.put_line('Tabela zagnieżdżona zawiera ' || VT_Osrodki.COUNT || ' elementów a inteks jej ostatniego elementu to ' || VT_Osrodki.COUNT);
  31. kasujNiepotrzebne(VT_Osrodki);
  32. DBMS_OUTPUT.put_line('Tabela zagnieżdżona zawiera ' || VT_Osrodki.COUNT || ' elementów a inteks jej ostatniego elementu to ' || VT_Osrodki.COUNT);
  33. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement