无效的标识符错误,但我不明白为什么

时间:2017-11-13 17:16:24

标签: sql oracle syntax-error ddl create-table

开始学习SQL并开始创建脚本。代码看起来很好,但我一直得到无效的标识符错误。我一遍又一遍地检查代码,但一切似乎都没问题。我在这里生气。我顺便使用oracle。

create table Products ( ID int not null, Item varchar(30) not null, Size 
varchar(1) not null);
insert into Products values ( 321, 'T-shirt', 'M');
insert into Products values ( 211, 'Jeans', 'L');

2 个答案:

答案 0 :(得分:2)

Size是Oracle中的保留字,请尝试将列名更改为无保留字。

请参阅here for the full list of reserved words

答案 1 :(得分:1)

size是Oracle SQL中的保留字(不确定它是否符合ANSI标准,但某些数据库,如MySQL,绝对允许它)。

您可以使用双引号(")来逃避它:

CREATE TABLE Products (
    ID INT NOT NULL,
    Item VARCHAR(30) NOT NULL,
    "Size" VARCHAR(1) NOT NULL
);

但是选择一个不是保留字的名称要容易得多:

CREATE TABLE Products (
    ID INT NOT NULL,
    Item VARCHAR(30) NOT NULL,
    ProductSize VARCHAR(1) NOT NULL
);