oracle删除sequence时报错,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

总结:

本来序列操作很简单的,竟然遇到这样的错误, 莫名奇妙。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值