ORA-24344:编译错误/触发成功

时间:2016-12-18 23:48:52

标签: sql psql

不确定为什么我得到这个错误,没有真正的线索,我用psql做什么,但如果有人可以帮助ID欣赏它

create or replace trigger gender_check
before insert or update of gender
on volunteer
for each row
begin
    if (:new.volunteer.gender != 'M' or :new.volunteer.gender != 'F')
        then    raise_application_error(-20601,
        'Gender is invalid, please insert M or F');
    end if;
end;

1 个答案:

答案 0 :(得分:0)

您的if条件应为:

if (:new.gender <> 'M' and :new.gender <> 'F')

使用or所有非空值都会传递条件,因为'M'&lt;&gt; 'F'

重要的更改是以及volunteer的删除,它似乎是表名。

更好的方法是:

if (:new.gender not in ('M', 'F'))