码迷,mamicode.com
首页 > 系统相关 > 详细

select sequence.currval 时报错 ORA-08002: 序列XXXX尚未在此进程中定义

时间:2015-07-25 16:56:28      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:ora-08002   sequence   

情景描述:

1.我们创建一个表,表名为S_DEPART

-- Create table
create table S_DEPART
(
  departid    INTEGER not null,
  departname  NVARCHAR2(40) not null,
  departorder INTEGER default 0
)
2.创建一个sequence序列,名称为S_DEPART_S

CREATE SEQUENCE S_DEPART_S 
MINVALUE 1
MAXVALUE 9999999999999999999999
START WITH 1
INCREMENT BY 1
NOCACHE;
3.下面我们往该表里插入一条记录

insert into S_Depart(departid,Departname,Departorder)VALUES(S_DEPART_S.CURRVAL,'12345',1);
此时,出现如下错误:

报错  ORA-08002: 序列XXXX尚未在此进程中定义

错误分析:sequence序列的CURRVAL必须要先用NEXTVAL初始化一下,以后就可以用CURRVAL了。

解决办法:先用NEXTVAL初始化:

<pre name="code" class="sql">insert into S_Depart(departid,Departname,Departorder)VALUES(S_DEPART_S.NEXTVAL,'12345',1);


此时我们可以查询sequence序列S_Depart_s的值:

SELECT S_DEPART_S.CURRVAL FROM dual;
从下图我们可以看到S_Depart_s序列的当前值为2

技术分享

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

select sequence.currval 时报错 ORA-08002: 序列XXXX尚未在此进程中定义

标签:ora-08002   sequence   

原文地址:http://blog.csdn.net/lizhangyong1989/article/details/47057115

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!