`
zsjg13
  • 浏览: 137916 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

ORA-02287: sequence number not allowed here问题的解决

SQL 
阅读更多

当插入值需要从另外一张表中检索得到的时候,如下语法的sql语句已经不能完成该功能:
insert into my_table(id, name) values ((select seq_my_table.nextval from dual), ‘runto30′);
会报“ORA-02287: sequence number not allowed here”的错误,可以使用如下语句来完成:
insert into my_table(id, name) select seq_my_table.nextval,
' runto30 ' from dual;

 

或者是

insert into my_table(id, name) values( seq_my_table.nextval, ' runto30 ' )

分享到:
评论
2 楼 zsjg13 2011-02-15  
不好意思,我看了下我上面的描述,我发现我把insert语句中的values写成了value,以及把获取序列值的nextval写成了netvalue,改过之后就可以了。下面是我的测试代码已经成功了:
create table test1
(id number primary key,
name varchar2(30)
);

create sequence id_test
start with 1
increment by 1;

select id_test.nextval from dual;

insert into test1(id, name) values ((select id_test.nextval from dual), 'runto30');

insert into test1(id, name) select id_test.nextval, 'runto30' from dual;

insert into test1(id, name) values(id_test.nextval,'123');

1 楼 StartNowFly 2011-02-15  
没解决,还是报一样的错

相关推荐

Global site tag (gtag.js) - Google Analytics