Member 14066415 Ответов: 0

Сравните дату на 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 (дата)[^]

0 Ответов