sqlplus语句中创建一个触发器一直提示第三行错误,缺失右括号是为什么,触发器代码如下所示

create or replace trigger sex_trigger
before insert on studentinfo for each row
when(new.性别<>'男'||new.性别<>'女')
begin

RAISE_APPLICATION_ERROR(-20999,to_char('性别只能为男或女');

end;
/

第1个回答  2016-06-04
办法一:把序列和触发器名字中的引号去掉.
办法二:触发器中,select "Sequence_APP".NEXTVAL INTO :new.AID from dual;
第2个回答  2016-06-03
new的前面加: (英文冒号), 这是规定。old也是一样。追问

我加了英文的冒号还是提示缺失右括号啊?

追答

SQL when 后面不需要()

追问

去掉括号后,又提示缺失左括号了

追答

when( || )这是C语言的风格。你查查看when有这个用法么?似乎只有case when的用法。

本回答被提问者和网友采纳