当前位置:  开发笔记 > 编程语言 > 正文

ORA-02287:此处不允许使用序列号

如何解决《ORA-02287:此处不允许使用序列号》经验,为你挑选了2个好方法。



1> Rahul Tripat..:

你可以在FAQ中找到原因

以下是您无法使用序列的情况:

对于SELECT语句:

在WHERE子句中

在GROUP BY或ORDER BY子句中

在DISTINCT子句中

与UNION或INTERSECT或MINUS一起使用

在子查询中



2> Tony Andrews..:

此查询引发异常:

SELECT cal_id.nextval  , EXTRACT(YEAR FROM start_date) , count(placement_id)
FROM placement
group by year;

这是因为您无法在带有group by子句的查询中选择序列值.

此外,一个group by子句必须包含该子句中的所有非聚合表达式select,这些表达式不属于您.我猜这year是别名EXTRACT(YEAR FROM start_date),在这种情况下这是你需要的查询:

INSERT INTO placement_cal
SELECT cal_id.nextval, year, cnt FROM
( SELECT EXTRACT(YEAR FROM start_date) year, count(placement_id) cnt
  FROM placement
  group by EXTRACT(YEAR FROM start_date)
);

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有