ORA-08002: 序列 SEQ_WGB_TEST2.CURRVAL 尚未在此会话中定义
来源:互联网 发布:淘宝的管理团队 编辑:程序博客网 时间:2024/06/06 01:33
环境
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---------- 1000SQL> SELECT seq_WGB_Test2.CURRVAL FROM dual; CURRVAL---------- 1000SQL>
创建Sequence后直接查询它的当前值(CURRVAL)会出错,要先调用Sequence对象.NEXTVAL,才能查询当前值。注意:Oracle是不区分对象名大小写的。
完整日志
Microsoft Windows [Version 6.1.7601]Copyright (c) 2009 Microsoft Corporation. All rights reserved.C:\Users\Wentasy>sqlplusSQL*Plus: Release 11.2.0.1.0 Production on 星期三 5月 8 18:49:34 2013Copyright (c) 1982, 2010, Oracle. All rights reserved.请输入用户名: wgb输入口令:连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> CREATE SEQUENCE seq_WGB_Test 2 MINVALUE 0 3 INCREMENT BY 1 4 START WITH 1000;CREATE SEQUENCE seq_WGB_Test *第 1 行出现错误:ORA-00955: 名称已由现有对象使用SQL> select * from tab;TNAME TABTYPE CLUSTERID------------------------------ ------- ----------ADMIN TABLEBIN$3nsCzoq0TWOFAF7FNWp2Ww==$0 TABLEBIN$6nilOleNQvqabmvq1Zg+xA==$0 TABLEBIN$UITFwn98Tgymdh0eN9itmQ==$0 TABLEBIN$lMXf63gRRYScHIKIQowBtQ==$0 TABLEBIN$nrOJ+rQPQC2q5p78nwGiiA==$0 TABLEBIN$q+6u6SPaR8q8tuTSUD9qgA==$0 TABLEBIN$qNbqiRwcT+Gy44xHHER59Q==$0 TABLECATEGORY TABLECOMMONS TABLECONTACTOR TABLETNAME TABTYPE CLUSTERID------------------------------ ------- ----------COUNTRY TABLEDEPT TABLEEMP TABLEENROLLMENT TABLEFACES TABLEMEMBER TABLEMESSAGE TABLEPRODUCT TABLESTUDENT TABLETBBILL TABLETBPERSON TABLETNAME TABTYPE CLUSTERID------------------------------ ------- ----------TBSUIT TABLETBUSERTBSUIT TABLETEST TABLET_ADDRESS TABLET_COURSE TABLET_HIBERNATE_USER TABLET_ITEM TABLET_MONEY_USER TABLET_ORDER TABLET_STUDENT TABLET_USER TABLETNAME TABTYPE CLUSTERID------------------------------ ------- ----------T_USER2 TABLE已选择34行。SQL> select * from seq;SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE------------------------------ ---------- ---------- ------------ - - ----------LAST_NUMBER-----------HIBERNATE_SEQUENCE 1 1.0000E+28 1 N N 20 1SEQ_FOR_TEST 1 1.0000E+28 1 N N 20 5SEQ_WGB_ADMIN 1 1.0000E+28 1 N Y 0 20SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE------------------------------ ---------- ---------- ------------ - - ----------LAST_NUMBER-----------SEQ_WGB_COMMON 1 1.0000E+28 1 N N 20 1SEQ_WGB_COMMONS 1 1.0000E+28 1 N N 20 9SEQ_WGB_CONTACTOR 1 1.0000E+28 1 N Y 0 28SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE------------------------------ ---------- ---------- ------------ - - ----------LAST_NUMBER-----------SEQ_WGB_FACES 1 1.0000E+28 1 N N 20 12SEQ_WGB_MEMBER 1 1.0000E+28 1 N N 20 7SEQ_WGB_MESSAGE 1 1.0000E+28 1 N N 20 6SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE------------------------------ ---------- ---------- ------------ - - ----------LAST_NUMBER-----------SEQ_WGB_MONEY_USER 1 1.0000E+28 1 N N 20 8SEQ_WGB_TEST 1 1.0000E+28 1 N N 20 242已选择11行。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 尚未在此会话中定义SQL> SELECT seq_WGB_Test2.NEXTVAL FROM dual; NEXTVAL---------- 1000SQL> SELECT seq_WGB_Test2.CURRVAL FROM dual; CURRVAL---------- 1000SQL>
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]
- Oracle 序列使用时:ORA-08002: 序列 SEQ_WGB_TEST2.CURRVAL 尚未在此会话中定义
- ORA-08002: 序列 SEQ_WGB_TEST2.CURRVAL 尚未在此会话中定义
- ORA-08002: 序列 SEQ_WGB_TEST2.CURRVAL 尚未在此会话中定义
- ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义
- ORA-08002错误:序列 XXXX.CURRVAL 尚未在此会话中定义
- ORA-08002: 序列 SEQ1.CURRVAL 尚未在此会话中定义
- ORA-08002:序列XXXXXXX.CURRVAL尚未在此进程中定义
- select sequence.currval 时报错 ORA-08002: 序列XXXX尚未在此进程中定义
- ORA-08002 序列XXXX尚未在此进程中定义
- ORA-08002: SEQUENCES **.CURRVAL 未定义
- ORA-01086:从未在此会话中创建保存点WIP_MASSLOAD_START或该保存点无效
- 在cx_oracle中使用nextval, currval,sysdate
- ‘ostream_iterator’ 在此作用域中尚未声明
- ‘runtime_error’在此作用域中尚未声明
- ‘ostream_iterator’ 在此作用域中尚未声明
- C++中“在此作用域中尚未声明”的错误解决
- C++中“在此作用域中尚未声明”的错误解决
- 在使用macbook pro过程中遇到 <此apple id尚未用于App Store>,解决方法!
- win7下visualbox安装ubuntu无法进入图形界面
- Spring MVC 表单标签简介
- JAVA 冒泡排序
- vs2010中 vc++ directories全局配置
- 如何不需要再sudo输入密码
- ORA-08002: 序列 SEQ_WGB_TEST2.CURRVAL 尚未在此会话中定义
- Merge or Rebase?
- 整型,字符串转换
- 数据库操作通用类库 不管是sql server oracle mysql 还有别的都可以啊! 太强了
- 黑马程序员-ADO.net-SQL语句复习大全(二)
- 国内免费(开源)CMS系统大全
- 不健壮代码分析
- 在Java应用中嵌入sshd服务(续)
- 动态规划专项intermediate:LA 4015