sql - 在此上下文中不允许表、 View 或序列引用 'SEQUENCE.NEXTVAL'

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

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

最佳答案

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

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

您需要改用select into:

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

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

关于sql - 在此上下文中不允许表、 View 或序列引用 'SEQUENCE.NEXTVAL',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507964/

相关文章:

sql - 如何在SQL中使用Like多个值

oracle - 如何在 Oracle DB 中选择具有 4 字节 UTF-8 字符的行?

Oracle - 审计跟踪生成器?

clojure - 在迭代序列时特殊处理最后一个元素

swift - 如何对标签栏的第二项进行转接?

r - 在R中生成月份最后一天的日期序列

php - 将长名称列表读入 mysql 并查询名称

java - 使用文本字段插入数据很困难(jdbc swing)

MySQL - 按多条记录分类的COUNT散点图

java - 我应该部署为 ADF Library Jar 来调用函数吗?