Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. --36
  2. DECLARE
  3. sumaPrzydzialow NUMBER:=0;
  4. zmian NUMBER:=0;
  5. podwyzka NUMBER:=0;
  6. przydzial KocuryR.PRZYDZIAL_MYSZY%TYPE;
  7. CURSOR odMinPrzydzialu IS
  8. SELECT
  9. PSEUDO,
  10. (SELECT MAX_MYSZY FROM FUNKCJE F WHERE K.FUNKCJA = F.FUNKCJA) maxBandy
  11. FROM KocuryR K
  12. ORDER BY 2;
  13.  
  14. kot odMinPrzydzialu%ROWTYPE;
  15. BEGIN
  16. <<petla>>LOOP
  17. OPEN odMinPrzydzialu;
  18. LOOP
  19. FETCH odMinPrzydzialu INTO kot;
  20. SELECT SUM(PRZYDZIAL_MYSZY) INTO sumaPrzydzialow FROM KocuryR;
  21. EXIT WHEN odMinPrzydzialu%NOTFOUND;
  22. IF sumaPrzydzialow <= 1050
  23. THEN
  24. SELECT PRZYDZIAL_MYSZY INTO przydzial FROM KocuryR WHERE pseudo = kot.pseudo;
  25. IF kot.maxBandy < ROUND(1.1*przydzial)
  26. THEN podwyzka:=kot.maxBandy-przydzial;
  27. ELSE podwyzka:=ROUND(0.1*przydzial);
  28. END IF;
  29. IF podwyzka != 0
  30. THEN zmian:=zmian+1;
  31. END IF;
  32. UPDATE KocuryR SET PRZYDZIAL_MYSZY = PRZYDZIAL_MYSZY + podwyzka
  33. WHERE pseudo = kot.pseudo;
  34. ELSE
  35. DBMS_OUTPUT.PUT_LINE('Calk. przydzial w stadku ' || sumaPrzydzialow||' Zmian - ' || zmian);
  36. EXIT petla;
  37. END IF;
  38. END LOOP;
  39. CLOSE odMinPrzydzialu;
  40. END LOOP;
  41. END;
  42.  
  43. SELECT
  44. imie,
  45. NVL(przydzial_myszy,0) "Myszki po podwyzce"
  46. FROM KocuryR;
  47.  
  48. rollback;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement