oracle-序列 ora-02287 此处不允许序号

原创 2016年05月30日 10:27:43

今天在生产数据库执行时报ora-02287 此处不允许序号
类似:
SELECT distinct
SYS_GUID(),
‘Y’ ACTIVE,
‘N’ IsRedBack,
‘N’ IsInit,
1 VersionNo,
‘YS2’ || LPAD(STL.SQ_YS2.NEXTVAL, 9, ‘0’) ReceivableNo
from dual
经查使用序列是有限制的:
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
所以我这里是犯了A SELECT statement with the DISTINCT operator,
修改为:
select SYS_GUID(),
‘YS2’ || LPAD(STL.SQ_YS2.NEXTVAL, 9, ‘0’) ReceivableNo,
T.*
FROM (
SELECT distinct
‘Y’ ACTIVE,
‘N’ IsRedBack,
‘N’ IsInit,
1 VersionNo
from dual
)T
这样就可以避免 A query of a view or of a materialized view

A SELECT statement with the DISTINCT operator

版权声明:本文为博主原创文章,未经博主允许不得转载。

ORA-02287:此处不允许序号(sequence number not allowed here) 的避免以及强制实现

问题场景一: SELECT id,name FROM (select SEQ_B_LOG_ID.NEXTVAL id , 'elong_deo' name from dual); 问题场景二: in...

ORA-02287: 此处不允许序号

最近有个功能数据更新和插入量比较大,原先单条处理效率低,同时,每次重新计算生成主键比较麻烦且耗时。在优化的时候,考虑改成批量操作。 批量操作还好,主要问题是需要调整主键生成方式,首先想到了sequen...

ORA-02287:此处不允许序号(sequence number not allowed here) 的避免以及强制实现

白天在过程包中使用序列产生的一个错误,记录一下

ORA-02287: 此处不允许序号

开发人员反映序列不能使用,自己回来测试了一下 select test.sequence.nextval,mgr,sum(sal) from emp group by mgr ORA-022...
  • Heng_Ji
  • Heng_Ji
  • 2014年01月15日 10:44
  • 3827

Mybatis 批量插入带oracle序列例子+ORA-02287: 此处不允许序号

insert into PRESON         select SEQ_PRESON_ID.NEXTVAL,A.* from(                      separator=...
  • DR_LF
  • DR_LF
  • 2014年11月22日 11:57
  • 5786

Oracle数据库批量插入使用Sequence.nextval报错ORA:02287问题解决

今天出现一个很奇葩的问题,之前做oracle的批量插入,对于主键都是直接在Java中赋值,后来发现不方便,后来改用Sequence.nextval,结果报错 使用前: insert into ex...

Spring注解配置定时任务<task:annotation-driven/>

首先在配置文件头部的必须要有: xmlns:task="http://www.springframework.org/schema/task" 1 其次xsi:schemaLocation必须为其添加...

java中date,string,timestamp,时间戳的相互转换大全

关于string  date timestamp之间的相互转换 1.  string转date string datestr=”2015-09-0109:00:00”; date date=ne...

【ORACLE】【操作报错】ORA-25150不允许对区参数执行ALERING

1、执行 , 在pl/sql develop 中修改表,新家字段,点应用,出现错误 ORA-25150:不允许对区参数执行ALERING; ALTER table MBXXB0 add SYCS00 ...

ORA-12528: TNS: 监听程序: 所有适用的例程都不允许建

D:\Script>set day=-12-17 D:\Script>cd d:\backupD:\backup>md -12-17D:\backup>sqlplus /nolog @D:\scrip...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle-序列 ora-02287 此处不允许序号
举报原因:
原因补充:

(最多只允许输入30个字)