Сравните дату на plsql
Я должен создать триггер, который вызовет ошибку, если я попытаюсь удалить из таблицы и дату в таблице, равную sysdate.
Я попытался удалить строку , содержащую сегодняшнюю дату 25-nov-18, и триггер не работает, я попытался напечатать значения :old.datedep и dateres, и там то же самое. 25-nov-2018 25-nov-2018 Может ли кто-нибудь мне помочь? спасибо
это мой код.:
Что я уже пробовал:
create or replace trigger nonViolation before insert or delete on reservation for each row declare error exception; error2 exception; dateres date:=sysdate; begin if inserting then if :new.dateDep<dateres then raise error; end if; end if; if deleting then if (:OLD.datedep=dateres) then raise error2; end if; end if; exception when error2 then raise_application_error(-20003,'supression impossible'); when error then raise_application_error(-20001,'reservation impossible'); end;
0x01AA
Делает sysdate
также содержит время? Если да, то я думаю, что это объяснит вашу проблему.
Попробуйте что-нибудь вроде этого: if (trunc(:OLD.datedep) = trunc(dateres))
Подробности смотрите здесь: TRUNC (дата)[^]