簡體   English   中英

ORACLE SQL APEX 使用序列號給出缺少表達式錯誤

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM