我的Oracle TRIGGER出了什么问题?

时间:2014-04-16 00:07:31

标签: sql database oracle triggers

我创建了一个序列,如:

CREATE Sequence index START WITH 1000;

我的触发器代码如下所示:

CREATE OR REPLACE TRIGGER user BEFORE INSERT ON CUSTOMERS
FOR EACH ROW
BEGIN
SELECT index.nextval INTO :new.custid FROM DUAL;
END User;

我不断收到“使用编译错误创建的触发器”消息,但我的其余代码仍可正常工作。我在俯瞰什么?错误说“遇到符号”INSERT“”

1 个答案:

答案 0 :(得分:3)

我怀疑甲骨文可能会发出嘎嘎声,因为 USER 是Oracle中的保留字。 INDEX 也是如此。

所以,在其他任何事情之前,我建议尝试使用非保留字的标识符进行测试,并验证您在同一/当前模式中有一个名为CUSTOMERS的表,并且它包含一个名为{的列{1}}。

(远程可能这是一个特权问题,但如果你没有CREATE TRIGGER权限,那么Oracle就不会报告“Trigger created ...”。

如果我们确实发现有必要使用保留字作为对象标识符,我们可以将标识符括在双引号中,但这也会使标识符区分大小写。