我创建了一个序列,如:
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“”
答案 0 :(得分:3)
我怀疑甲骨文可能会发出嘎嘎声,因为 USER
是Oracle中的保留字。 INDEX
也是如此。
所以,在其他任何事情之前,我建议尝试使用非保留字的标识符进行测试,并验证您在同一/当前模式中有一个名为CUSTOMERS
的表,并且它包含一个名为{的列{1}}。
(远程可能这是一个特权问题,但如果你没有CREATE TRIGGER权限,那么Oracle就不会报告“Trigger created ...”。
如果我们确实发现有必要使用保留字作为对象标识符,我们可以将标识符括在双引号中,但这也会使标识符区分大小写。