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

时间:2014-03-19 13:48:33

标签: 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  

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

1 个答案:

答案 0 :(得分:9)

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

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

您需要使用select into代替:

select ID_CONSISTANCE.nextval
  into :new.code 
FROM dual;

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