由於sysdate無法在檢查約束中使用,試圖通過觸發器來實現目的。 但它顯示「警告:觸發器編譯錯誤創建。」使用警告創建觸發器
我發佈我的語法如下。我正在使用Oracle 10g數據庫。
create table birth
(name varchar2(30), DOB date);
insert into birth values ('Ravi', sysdate+1);
插入1行。 現在技術上這是錯誤的。爲了防止這個我創建一個觸發器
create or replace trigger birth_trigger
before insert or update of dob on birth
for each row
begin
if (dob >=sysdate)
then
raise_application_error (-20501, 'DOB cannot be greater than sysdate');
end if;
end;
現在我在這裏得到「警告:編譯錯誤創建的觸發器」。 無法解決問題。 請幫忙。
我不會在'DATE'列上調用'TO_DATE' ... –
而不是上面的條件使用這個條件(:new.dob> = sysdate) – Smart003