我试图创建一个表,但得到一个无效的标识符错误。这是什么意思?我已经把代码看了一遍又一遍。我其他的话都说得很好。我搞不懂这有什么问题。
下面是返回错误的语句:
/* Create Transaction Table */
31 CREATE TABLE TRANSACTION(TxNbr INTEGER PRIMARY KEY,
32 TxCode CHAR(1) NOT NULL,
33 AccountNbr INTEGER NOT NULL,
34 Amount DECIMAL(13,2) NOT NULL,
35 Date DATE,
36 Time TIME,
37 RefNbr VARCHAR(3),
38 FOREIGN KEY(AccountNbr) REFERENCES ACCOUNT (AccountNbr) ON DELETE SET NULL,
39 FOREIGN KEY(TxCode) REFERENCES TX_TYPE (TxCode) ON DELETE SET NULL
40 );
错误如下:
Error starting at line : 31 in command -
Error report -
ORA-00904: : invalid identifier
00904. 00000 - "%s: invalid identifier"
* Cause:
* Action:
1条答案
按热度按时间fiei3ece1#
您的代码有两个问题(不考虑外键约束,在不实际了解相关表的结构的情况下我们无法验证)
DATE
是oracle中的保留字(这是一种数据类型),因此它不能用于列名,除非用双引号将其括起来—但如果这样做,则每次访问该列时都需要用引号将其括起来。我建议只使用与语言关键字不冲突的列名。根本没有
TIME
oracle中的数据类型;这个DATE
数据类型实际上存储日期和时间-这通常比在两个不同的列中分离日期和时间部分要好,因为它使日期算法更容易。我建议把那根柱子去掉。考虑: