【问题标题】:Invalid identifier error but i can't see why无效的标识符错误,但我不明白为什么
【发布时间】:2017-11-13 17:16:24
【问题描述】:

开始学习 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');

【问题讨论】:

  • 我正在使用 oracle
  • @Mureinik 我收到无效标识符错误
  • varchar 还是 varchar2?你想知道未来潜在的空字符串和null的区别吗?

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


【解决方案1】:

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

here for the full list of reserved words

【讨论】:

    【解决方案2】:

    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
    );
    

    【讨论】:

      猜你喜欢
      • 2021-03-21
      • 2019-09-19
      • 1970-01-01
      • 2018-06-14
      • 2013-07-23
      • 2010-11-08
      • 2021-03-18
      • 2016-12-05
      • 2020-06-15
      相关资源
      最近更新 更多