啥都不说了,请看下面测试SQL> create table st_user (userid number);表已创建。SQL> create sequence "Sequence_userid" start with 1 increment by 1;序列已创建。SQL> select * from user_Sequence where sequence_name = 'Sequence_userid'; select * from user_Sequence where sequence_name = 'Sequence_userid' * 第 1 行出现错误: ORA-00942: 表或视图不存在 SQL> select * from user_Sequences where sequence_name = 'Sequence_userid';SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE------------------------------ ---------- ---------- ------------ - - ----------LAST_NUMBER ----------- Sequence_userid 1 1.0000E+27 1 N N 20 1 SQL> insert into ST_USER VALUES(Sequence_userid.nextval); insert into ST_USER VALUES(Sequence_userid.nextval) * 第 1 行出现错误: ORA-02289: 序列不存在 SQL> insert into ST_USER VALUES("Sequence_userid".nextval);已创建 1 行。SQL> commit;提交完成。SQL> select * from st_user; USERID ---------- 1SQL> create sequence Sequence_userid start with 1 increment by 1;序列已创建。SQL> insert into ST_USER VALUES(Sequence_userid.nextval);已创建 1 行。SQL> commit;提交完成。SQL> select * from st_user; USERID ---------- 1 1SQL>
SQL> drop table st_user purge;表已删除。SQL> drop sequence Sequence_userid;序列已删除。SQL> drop sequence Sequence_userid; drop sequence Sequence_userid * 第 1 行出现错误: ORA-02289: 序列不存在 SQL> drop sequence "Sequence_userid";序列已删除。SQL>
------------------------------
ABCD_SEQSQL> insert into t5(id) values(ABCD_SEQ.NEXTVAL);已创建 1 行。SQL>
看你插入的列类型是否都正确。insert into st_user values(SEQUENCE_USERID.NEXTVAL,'','','0');
这样试试(虽然和你的sql语句一样)。
无""时,ORACLE对象名都是大写。
select * from user_Sequence where sequence_name = 'Sequence_userid'是查不到的。
重新创建该sequence,不要使用""。
或者使用:
insert into ST_USER VALUES("Sequence_userid".nextval,'','','0');造孽…………
这样类似的问题我以前也遇到过!我想问个问题,既然他在创建sequence的时候带了双引号,那么他查询的时候(对sequence的名称没有加双引号)怎么又查到了呢??按我的理解如果他加了双引号那么在查询时如果对该sequence名没有加双引号进行查询时,应该是查不到的呀!!
select * from user_Sequence where sequence_name = 'Sequence_userid'
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> select * from user_Sequences where sequence_name = 'Sequence_userid';SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE------------------------------ ---------- ---------- ------------ - - ----------LAST_NUMBER
-----------
Sequence_userid 1 1.0000E+27 1 N N 20 1
SQL> insert into ST_USER VALUES(Sequence_userid.nextval);
insert into ST_USER VALUES(Sequence_userid.nextval)
*
第 1 行出现错误:
ORA-02289: 序列不存在
SQL> insert into ST_USER VALUES("Sequence_userid".nextval);已创建 1 行。SQL> commit;提交完成。SQL> select * from st_user; USERID
----------
1SQL> create sequence Sequence_userid start with 1 increment by 1;序列已创建。SQL> insert into ST_USER VALUES(Sequence_userid.nextval);已创建 1 行。SQL> commit;提交完成。SQL> select * from st_user; USERID
----------
1
1SQL>
drop sequence Sequence_userid
*
第 1 行出现错误:
ORA-02289: 序列不存在
SQL> drop sequence "Sequence_userid";序列已删除。SQL>