在此上下文中不允许使用表,视图或序列引用"SEQUENCE.NEXTVAL"

mou*_*aim 2 sql oracle sequence oracle9i

我在尝试编译以下触发器时遇到此错误:

CREATE OR REPLACE TRIGGER INCREMENTER_ID_CONSISTANCE 

BEFORE INSERT ON BD.CONSISTANCE 
for each row
BEGIN
:new.code := ID_CONSISTANCE.nextval;
END;  


**ERROR** : Table,View Or Sequence reference 'ID_CONSISTANCE.nextval' not allowed in
this context  
Run Code Online (Sandbox Code Playgroud)

这里有什么问题 ?我该如何解决这个问题?

a_h*_*ame 9

此语法仅在Oracle 11或更高版本中允许.

(不支持和过时的)9i版本不支持直接分配序列值.

你需要使用一个select into代替:

select ID_CONSISTANCE.nextval
  into :new.code 
FROM dual;
Run Code Online (Sandbox Code Playgroud)

您应该真正计划升级到当前版本的Oracle(11.x或12.x)