Skip navigation

Projektmunka

Beépített programok készítése a túraszervező rendszerhez

A túraszervező rendszer esetében létrehozhatunk néhány olyan beépített függvényt és eljárást, amelyet az adatbázisban tárolunk.

Gondolhatunk erre akár úgy, mint a modell eljárások és -függvények egy részére, ami vagy bevisz adatot az adatbázisba, vagy akár lekérdez valamilyen értéket.

Használjuk ki, hogy a tárolt eljárások és függvények törzsében PL/SQL programot írhatunk, vagyis leellenőrizhetjük, átalakíthatjuk az adatot.

Készítsünk egy olyan függvényt, amely új túrát visz be az adatbázisba úgy, hogy leellenőrzi, hogy az adott túravezetőnek abban az időpontban van-e más túrája!

CREATE FUNCTION UjTura (
  p_turanev IN VARCHAR2,
  p_kiiras IN CLOB,
  p_idopont IN TIMESTAMP,
  p_nevezesiDij IN NUMBER,
  p_turavezeto_userid IN NUMBER,
  p_utvonalid IN NUMBER)
RETURN BOOLEAN
AS
   v_turaszam NUMBER;
BEGIN
  SELECT COUNT(*) INTO v_turaszam FROM tura WHERE userid = p_turavezeto_userid AND TRUNC(idopont) = TRUNC(p_idopont);
  IF v_turaszam = 0 THEN
    -- ha nincs túrája a túravezetőnek, akkor beszúrjuk az új rekordot és TRUE értékkel térünk vissza
    INSERT INTO tura VALUES (p_turanev, p_kiiras, p_idopont, p_nevezesiDij, p_turavezeto_userid, p_utvonalid);
    RETURN TRUE;
  END IF;
  -- ha van már aznapra tervezett túra, akkor FALSE értékkel térünk vissza
  RETURN FALSE;
END UjTura;