Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6943628
  • 博文数量: 701
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12021
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院架构师,专注企业数字化各个方面,MES/ERP/CRM/OA、物联网、传感器、大数据、ML、AI、云计算openstack、Linux、SpringCloud。

文章分类

全部博文(701)

分类: Oracle

2013-07-17 18:06:47

我在用到Oracle中 insert into select sequence distinct,业务中的用到:
所不同是:以下用的是union,我用的是distinct,呵呵,解决方法是一样的。
Q:
insert into bps_giftcode
  (giftcode, gift, giftact)
  select SEQ_BPS_GIFTCODE.nextval as s, '00000003' as b, '00000000' as c from dual
  union all
  select SEQ_BPS_GIFTCODE.nextval as s, '00000008' as b, '00000000' as c from dual
为什么一直报
ORA-02287:sequence number not allowed here
谢谢。

 

A:


汗,楼上写的有问题吧,INSERT可以UNION?

楼主的问题原因
Restrictions on Sequence Values You cannot use CURRVAL and NEXTVAL in the
following constructs:
■ A subquery in a DELETE, SELECT, or UPDATE statement
■ A query of a view or of a materialized view
■ A SELECT statement with the DISTINCT operator
■ A SELECT statement with a GROUP BY clause or ORDER BY clause  
■ A SELECT statement that is combined with another SELECT statement with the
UNION, INTERSECT, or MINUS set operator
■ The WHERE clause of a SELECT statement
■ The DEFAULT value of a column in a CREATE TABLE or ALTER TABLE statement
■ The condition of a CHECK constrain

楼主的问题解决方案
insert into bps_giftcode
  (giftcode, gift, giftact)
select SEQ_BPS_GIFTCODE.nextval as s, t.b, t.c
   from (select '00000003' as b, '00000000' as c from dual
            union all
            select  '00000008' as b, '00000000' as c from dual ) t

 

 
阅读(7030) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~