You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法定位该SQL建表语句错误,请求分析ORA-00904无效标识符报错

ORA-00904无效标识符:Inventory表建表语句错误排查

执行以下建表语句时触发ORA-00904: 无效标识符错误,可从以下方向排查:

CREATE TABLE Inventory 
(
    InventoryNumber INT PRIMARY KEY,
    ProductCode VARCHAR(10),
    ColorCode VARCHAR(10),
    Size VARCHAR(10) NOT NULL,
    Price DECIMAL(10,2) NOT NULL,
    QuantityOnHand INT NOT NULL,
    CONSTRAINT CHK_Inventory_Size CHECK (Size IN ('S', 'M', 'L', 'XL', 'XXL')),
    CONSTRAINT CHK_Inventory_Price CHECK (Price <= 9999.99),
    CONSTRAINT CHK_Inventory_QuantityOnHand CHECK (QuantityOnHand >= 0),
    CONSTRAINT FK_Inventory_Product FOREIGN KEY (ProductCode) REFERENCES Product(ProductCode),
    CONSTRAINT FK_Inventory_Color FOREIGN KEY (ColorCode) REFERENCES Color(ColorCode),
    UNIQUE (ProductCode, ColorCode, Size)
);

错误原因及解决方法

  • 关键字冲突:Size是Oracle的保留关键字,直接用作列名会触发无效标识符错误。
    解决方式二选一:

    1. 修改列名,比如改为ProductSize,同时更新所有约束中引用该列的部分;
    2. 给列名加上双引号,写成"Size",后续查询或维护该列时也必须使用双引号(Oracle会区分大小写)。
  • 关联表或列不存在:检查Product表是否存在且包含ProductCode列,Color表是否存在且包含ColorCode列。若关联表未创建,或列名拼写错误(比如大小写不匹配,Oracle默认将未加引号的列名转为大写),也会触发该错误。

  • 约束列名拼写错误:核对所有CHECK约束、外键约束中的列名,确保和表定义的列名完全一致,避免拼写失误。

修正后的示例语句(修改列名版本)

CREATE TABLE Inventory 
(
    InventoryNumber INT PRIMARY KEY,
    ProductCode VARCHAR(10),
    ColorCode VARCHAR(10),
    ProductSize VARCHAR(10) NOT NULL,
    Price DECIMAL(10,2) NOT NULL,
    QuantityOnHand INT NOT NULL,
    CONSTRAINT CHK_Inventory_Size CHECK (ProductSize IN ('S', 'M', 'L', 'XL', 'XXL')),
    CONSTRAINT CHK_Inventory_Price CHECK (Price <= 9999.99),
    CONSTRAINT CHK_Inventory_QuantityOnHand CHECK (QuantityOnHand >= 0),
    CONSTRAINT FK_Inventory_Product FOREIGN KEY (ProductCode) REFERENCES Product(ProductCode),
    CONSTRAINT FK_Inventory_Color FOREIGN KEY (ColorCode) REFERENCES Color(ColorCode),
    UNIQUE (ProductCode, ColorCode, ProductSize)
);

内容的提问来源于stack exchange,提问作者Darshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:47:32