[英]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.