ora-08002: 序列 seq_wgb_test2.currval 尚未在此会话中定义
环境
oracle 11.2.0 + sql plus
问题
查询sequence的当前值出现以下错误:
sql> select seq_wgb_test2.currval from dual;
select seq_wgb_test2.currval from dual
*
第 1 行出现错误:
ora-08002: 序列 seq_wgb_test2.currval 尚未在此会话中定义
解决
首先创建一个测试序列:
sql> create sequence seq_wgb_test2
2 increment by 1
3 start with 1000;
序列已创建。
然后查询当前值:
sql> select seq_wgb_test2.currval from dual;
select seq_wgb_test2.currval from dual
*
第 1 行出现错误:
ora-08002: 序列 seq_wgb_test2.currval 尚未在此会话中定义
调用nextval后再次查询当前值:
sql> select seq_wgb_test2.nextval from dual;
nextval
----------
1000
sql> select seq_wgb_test2.currval from dual;
currval
----------
1000
sql>
创建sequence后直接查询它的当前值(currval)会出错,,要先调用sequence对象.nextval,才能查询当前值。注意:oracle是不区分对象名大小写的。
