首页 > 解决方案 > ORA-00904: : SQL 中的标识符无效

问题描述

我目前正在处理 SQL 分配,但首先我需要创建它不允许我做的表。我有 3 个表,分别是 Customer、PurchableDeal 和 Usage。我成功地创建了前 2 个表,但在创建 Usage 表时遇到了一点困难。出于某种原因,它给了我这个错误。

Error at line 2:
ORA-00904: : Invalid Identifier

如果有人可以帮助我理解为什么它会给我这个错误,我将非常感激。谢谢。它是说 uID INT 存在问题,我正在使用 putty 创建这些表。

CREATE TABLE Customer(
CustomerID INT NOT NULL PRIMARY KEY,
CustomerName VARCHAR(100),
Phone VARCHAR(15)
);

CREATE TABLE PurchasedDeal(
DID INT NOT NULL PRIMARY KEY,
dealName VARCHAR(100),
cost FLOAT,
totalValue FLOAT,
balance FLOAT,
CustomerID INT,
FOREIGN KEY(CustomerID) REFERENCES Customer(CustomerID)
);

CREATE TABLE Usage(
uID INT,
uDate DATE,
cost FLOAT,
DealID INT,
PRIMARY KEY(DealID, uID),
FOREIGN KEY(DealID) REFERENCES PurchasedDeal(DID)
);

标签: sqloracle

解决方案


Oracle 中保留了术语“uid”。该术语不能用作 Oracle 环境中的列名。查询:SELECT uid FROM t1 结果:将正确执行

查询:SELECT U.”uid” FROM x.t1 U 结果:将通过错误:ORA-00904: “U”.”uid”: invalid identifier 00904. 00000 – “%s: invalid identifier”</p>

查询:SELECT U.”UID” FROM x.t1 U 结果:将正确执行,因为 uid 替换为 UID(大写)

下表中的整改,我们很高兴。CREATE TABLE Usage(uID1 INT, uDate DATE, cost FLOAT, DealID INT, PRIMARY KEY(DealID, uID1), FOREIGN KEY(DealID) REFERENCES PurchasedDeal_test(DID));


推荐阅读