Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. DECLARE
  2.     max_level NUMBER;
  3.     user_depth NUMBER := '&Przelozeni';
  4.     header VARCHAR2(150) := RPAD('IMIE',10,' ');
  5.     r VARCHAR2(150);
  6.     zero NUMBER := 0;
  7.     CURSOR koty IS SELECT imie FROM kocury WHERE funkcja IN ('KOT','MILUSIA');
  8.     CURSOR szefowie(korzen kocury.imie%TYPE) IS SELECT imie FROM kocury START WITH imie = korzen CONNECT BY PRIOR szef = pseudo;
  9. BEGIN
  10.     SELECT MAX(LEVEL) INTO max_level FROM kocury START WITH funkcja IN ('KOT', 'MILUSIA') CONNECT BY PRIOR szef= pseudo;
  11.     IF user_depth < max_level THEN max_level := user_depth +1; END IF; -- dodajemy 1 bo level maksymalny jest zawsze o 1 wiekszy niz bysmy chcieli
  12.     FOR i IN 1..max_level-1
  13.     LOOP
  14.         header := header || '|' ||  RPAD('SZEF ' || i,10,' ');
  15.     END LOOP;
  16.     DBMS_OUTPUT.put_line(header);
  17.     DBMS_OUTPUT.put_line(RPAD('-', max_level * 10 + max_level *3 , '-'));
  18.     FOR kot IN koty
  19.     LOOP
  20.         r := RPAD(kot.imie,10,' ');
  21.         FOR szef IN szefowie(kot.imie)
  22.             LOOP
  23.                 IF szefowie%ROWCOUNT > max_level THEN EXIT; END IF;
  24.                 IF kot.imie != szef.imie THEN r := r || '|' ||  RPAD( szef.imie,10,' '); END IF; --if dla formatowania
  25.             END LOOP;
  26.         DBMS_OUTPUT.PUT_LINE(r);
  27.     END LOOP;
  28. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement