Please, help!
I have following trigger:
CREATE TRIGGER check_rezervace
BEFORE INSERT ON rezervuje
FOR EACH ROW
DECLARE
chyba INTEGER;
BEGIN
SELECT Count(*)
INTO chyba
FROM rezervuje
join (SELECT rezervace_od
INTO new_od
FROM objednavka
WHERE id_objednavky = :new.objednavka_id_objednavky)
ON objednavka.id_objednavky = rezervuje.objednavka_id_objednavky
join (SELECT rezervace_do
INTO new_do
FROM objednavka
WHERE id_objednavky = :new.objednavka_id_objednavky)
ON objednavka.id_objednavky = rezervuje.objednavka_id_objednavky
WHERE rezervuje.pokoj_cislo_pokoje = :new.pokoj_cislo_pokoje
AND ( objednavka.rezervace_od < :new.new_od
AND :new.new_od < objednavka.rezervace_do )
OR ( objednavka.rezervace_od < :new.new_od
AND :new.new_do < objednavka.rezervace_do )
OR ( :new.new_od <= objednavka.rezervace_od
AND objednavka.rezervace_do <= :new.new_do );
IF chyba > 0 THEN
Raise_application_error(-20001, 'rezervace již existuje');
END IF;
END;
I have check compiler mistake:
Trigger CHECK_REZERVACE compiled
LINE/COL ERROR
--------- -------------------------------------------------------------
3/3 PL/SQL: SQL Statement ignored
4/24 PL/SQL: ORA-01744: ???????????? INTO
9/35 PLS-00049: ???????? ?????????? ???????? 'NEW.NEW_OD'
9/51 PLS-00049: ???????? ?????????? ???????? 'NEW.NEW_OD'
10/35 PLS-00049: ???????? ?????????? ???????? 'NEW.NEW_OD'
10/51 PLS-00049: ???????? ?????????? ???????? 'NEW.NEW_DO'
11/9 PLS-00049: ???????? ?????????? ???????? 'NEW.NEW_OD'
11/79 PLS-00049: ???????? ?????????? ???????? 'NEW.NEW_DO'
Errors: check compiler log
How to fix it? This trigger doesn't allow to add reservation(reservace_od/reservace_do) to the room if the reservation already existed fro this date.