Oracle序列(sequence)创建失败,无法取值(.nextval),无法删除(drop)解决办法
来源:互联网 发布:水果产地调查表软件 编辑:程序博客网 时间:2024/06/08 11:10
Oracle序列(sequence)创建失败,无法取值(.nextval),无法删除(drop)解决办法
出错过程:
(一)我用oracle帐户TRACQDEV下利用myEclipse数据库工具中创建了一个序列:
CREATE SEQUENCE "TRACQDEV"."seq_agent_money_log_id" MINVALUE 1 MAXVALUE 1.00000000000000E+27 INCREMENT BY 1 START WITH 1 CACHE 10 NOORDER NOCYCLE
(二)在sqlplus中查询失败:
SQL> select seq_agent_money_log_id.nextval from dual;
select seq_agent_money_log_id.nextval from dual
*
ERROR at line 1:
ORA-02289: sequence does not exist
(三)删除该序列也出错:
SQL> drop sequence 'seq_agent_money_log_id';
drop sequence 'seq_agent_money_log_id'
*
ERROR at line 1:
ORA-02277: invalid sequence name
(四)却能在用户的序列表里查询到:
SQL> select sequence_name from user_sequences where sequence_name='seq_agent_money_log_id';
SEQUENCE_NAME
------------------------------
seq_agent_money_log_id
(五)再创建同名序列时报错,提示该序列名称已经被占用:
SQL> CREATE SEQUENCE "TRACQDEV"."seq_agent_money_log_id" MINVALUE 1 MAXVALUE 1.00000000000000E+27 INCREMENT BY 1 START WITH 1 CACHE 10 NOORDER NOCYCLE ;
CREATE SEQUENCE "TRACQDEV"."seq_agent_money_log_id" MINVALUE 1 MAXVALUE 1.00000000000000E+27 INCREMENT BY 1 START WITH 1 CACHE 10 NOORDER NOCYCLE
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
(六)用oracle的sys用户操作也一样
(七)解决办法:
SQL> drop sequence "TRACQDEV"."seq_agent_money_log_id" ;
Sequence dropped.
(八)原因
开始我怀疑时MyEclipse数据库工具的bug。
但是用同样的创建语句在oracle的sqlplus下执行创建也同样报错。
可见时序列名称的问题,我本意是想在"TRACQDEV"用户下创建"seq_agent_money_log_id" 序列。
实际上是在当前用户下创建了"TRACQDEV"."seq_agent_money_log_id" 序列。
所以,select seq_agent_money_log_id.nextval from dual 报错。
而 select "TRACQDEV"."seq_agent_money_log_id".nextval from dual 则执行成功。
但是令人费解的是,为何在user_sequences 中显示的序列名称为 seq_agent_money_log_id
总结:
本来序列操作很简单的,竟然遇到这样的错误, 莫名奇妙。
- Oracle序列(sequence)创建失败,无法取值(.nextval),无法删除(drop)解决办法
- oracle序列(sequence)创建失败,无法取值(.nextval),无法删除(drop)解决办法
- Oracle Sequence的(序列的)创建删除查询
- Oracle数据库的创建与删除(DROP DATABASE语句)
- oracle-序列(SEQUENCE)-
- oracle-序列(SEQUENCE)
- oracle-序列(SEQUENCE)
- oracle 序列(sequence)
- Oracle序列(Sequence)创建、使用、修改、删除
- Oracle序列(Sequence)创建、使用、修改、删除
- Oracle序列(Sequence)创建、使用、修改、删除
- Oracle序列(Sequence)创建、使用、修改、删除
- SQLite无法使用drop column删除表字段解决办法
- SQLite无法使用drop column删除表字段解决办法
- oracle中的CURRVAL和NEXTVAL用法(sequence是序列号生成器)
- Oracle序列(sequence)详解
- 【Oracle 基础】序列(Sequence)
- [Oracle] 浅谈Sequence(序列)
- 给Conlose程序穿个马甲
- new、delete表达式
- ORACLE VS. MYSQL TRANSACTION ISOLATION
- Linux VI
- 软件项目管理Follow Me--如何进行项目估算
- Oracle序列(sequence)创建失败,无法取值(.nextval),无法删除(drop)解决办法
- An Essay on Endian Order
- 关于linux 下的编程
- 远程会议概述及其技术演变(电话会议,视频会议,网络会议)
- ActiveMovie属性说明
- Java框架介绍:Quartz从入门到进阶(图)
- Oracle SQL 内置函数大全
- flash中弧度与角度的关系
- 闲谈输入法、MinGW、日文字体