如何在oracle数据库中创建触发器,以便无法设置未来的日期



我在"patient"表中有一列"patient_dob"。现在我想在oracle数据库中创建一个触发器,这样患者就不能将未来的日期设置为他们的出生日期。所以我写了以下查询:

create or replace trigger test_trigger
before insert
on employees
for each row 
BEGIN
IF patient_dob > sysdate
   THEN
      RAISE_APPLICATION_ERROR(-20950, 'date error');
END IF;
END;

但代码不起作用。有人能告诉我如何创建一个触发器来执行上述功能吗?感谢

尝试使用new来识别列:

create or replace trigger test_trigger
before insert
on employees
for each row 
BEGIN
    IF :new.patient_dob > sysdate THEN
-------^
         RAISE_APPLICATION_ERROR(-20950, 'date error');
    END IF;
END;

最新更新