Advertisement
Guest User

Untitled

a guest
Oct 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE dodaj_rezerwacje
  2. (id_wycieczki_ IN INT, id_osoby_ IN INT) IS
  3. id_exists NUMBER(1);
  4. data_wycieczki DATE;
  5. dostepnosc_wycieczki NUMBER(1);
  6. BEGIN
  7. SELECT COUNT(*) INTO id_exists FROM WYCIECZKI w WHERE w.ID_WYCIECZKI = id_wycieczki_;
  8. IF id_exists = 0
  9. THEN
  10. RAISE_APPLICATION_ERROR(-20001, 'Wycieczka o podanym ID nie istnieje');
  11. END IF;
  12. SELECT COUNT(*) INTO id_exists FROM OSOBY o WHERE o.ID_OSOBY = id_osoby_;
  13. IF id_exists = 0
  14. THEN
  15. RAISE_APPLICATION_ERROR(-20001, 'Osoba o podanym ID nie istnieje');
  16. END IF;
  17. SELECT w.DATA INTO data_wycieczki FROM WYCIECZKI w WHERE w.ID_WYCIECZKI = id_wycieczki_;
  18. IF data_wycieczki < SYSDATE
  19. THEN
  20. RAISE_APPLICATION_ERROR(-20001, 'Wycieczka już się odbyła');
  21. END IF;
  22. SELECT COUNT(*) INTO dostepnosc_wycieczki FROM DOSTEPNE_WYCIECZKI w WHERE w.ID_WYCIECZKI = id_wycieczki_;
  23. IF dostepnosc_wycieczki = 0
  24. THEN
  25. RAISE_APPLICATION_ERROR(-20001, 'Brak miejsc na wycieczkę');
  26. END IF;
  27. INSERT INTO REZERWACJE(ID_WYCIECZKI, ID_OSOBY, STATUS)
  28. VALUES (id_wycieczki_,id_osoby_,'N');
  29. END;
  30.  
  31.  
  32. CREATE VIEW rezerwacje_do_anulowania
  33. AS
  34. SELECT
  35. r.NR_REZERWACJI,
  36. r.ID_WYCIECZKI,
  37. r.ID_OSOBY,
  38. r.STATUS,
  39. w.NAZWA,
  40. w.KRAJ,
  41. w.DATA
  42. FROM REZERWACJE r
  43. JOIN WYCIECZKI w ON r.ID_WYCIECZKI = w.ID_WYCIECZKI
  44. WHERE ( DATA - sysdate <= 7 and STATUS = 'N');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement