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;