“遇到符号”更新“意味着什么?”

时间:2016-11-29 05:50:09

标签: sql oracle plsql

当我尝试尝试实现触发器语句时,我收到错误消息“遇到符号”更新“”但我不知道为什么会发生这种情况

CREATE OR REPLACE TRIGGER Trigger1
before DELETE OR UPDATE OR INSERT ON condition
FOR EACH ROW
WHEN (SYSDATE NOT BETWEEN
to_date(to_char(SYSDATE, 'DD.MM.RRRR') || '06:00', 'DD.MM.RRRR HH24:MI' )
AND to_date(to_char(SYSDATE, 'DD.MM.RRRR') || '12:00', 'DD.MM.RRRR-HH24:MI')) BEGIN
RAISE_APPLICATION_ERROR (-20001,
'You can only change my data between 06:00 and 12:00 ! ');
END;

update condition
set name='abc', description='xyz'
where condition_id=1;

2 个答案:

答案 0 :(得分:1)

/放在触发器解除后的下一行

答案 1 :(得分:1)

PL / SQL代码需要在大多数Oracle开发环境中由/字符终止(例如SQL * Plus或SQL Developer)。由于您没有终止CREATE TRIGGER语句,因此当您执行该语句时,它会将下一个update condition ...语句解释为PL \ SQL代码的一部分,但由于它是'在结束END;声明之后被放置它无效。

在结束/之后添加END;应该为您解决问题。