[英]ORACLE SQL APEX using sequence numbers gives an missing expression error
我首先为经理创建了序列。
CREATE SEQUENCE manager_seq
START WITH 200
MAXVALUE 299
CYCLE
CACHE 10;
然后我使用 .NEXTVAL 插入了一些值
INSERT INTO manager
VALUES (manager_seq.NEXTVAL,'')
当我尝试使用 where 语句查询时,它显示 ORA-00936: missing expression
select * from manager where number = 201;
为什么它不适用于序列号我该如何使用它们?
列名不能是number
,这是一个保留字 - 为datatype保留。 例如:
SQL> create table manager (id number,
2 number number); --> this
number number)
*
ERROR at line 2:
ORA-00904: : invalid identifier
因此,发布表描述(以便我们建议做什么)或使用有效查询。
如果您使用保留字作为标识符,那么您需要在使用它的任何地方引用它。 所以,如果你有桌子:
CREATE TABLE manager (
"NUMBER" NUMBER,
something VARCHAR2(10)
);
然后插入行:
INSERT INTO manager VALUES (manager_seq.NEXTVAL,'');
INSERT INTO manager VALUES (manager_seq.NEXTVAL,'');
然后,如果您使用不带引号的标识符:
select * from manager where number = 201;
你得到错误:
ORA-00936: missing expression
但是,如果您使用带有正确大小写的带引号的标识符,那么您可以查询该表:
select * from manager where "NUMBER" = 201;
哪个输出:
数字 某物 201 无效的
注意:在 Oracle 中, ''
和NULL
是相同的。
db<> 在这里摆弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.