在Oracle DB中创建表时出现错误“%s:无效标识符”

时间:2012-10-01 15:14:01

标签: sql oracle

当我创建这样的表时:

create table DBDI_HIREDETAIL(
HireID int not null,
EquipID int not null,
Quantity int,
TotalFee float,
Comment varchar(200)
);

错误发生如下:

  

命令行出错:“TotalFee float”   错误报告:   SQL错误:ORA-00904 ::无效的标识符   00904. 00000 - “%s:无效标识符”

我不明白为什么我的代码有错误,似乎没问题。

2 个答案:

答案 0 :(得分:5)

COMMENT是Oracle中的保留字;它用于将comments添加到数据字典中。您应该避免将其用作列名。

SQL> create table a ( comment number );
create table a ( comment number )
                 *
ERROR at line 1:
ORA-00904: : invalid identifier

如果确实想要使用此列名称,则必须引用它,即"COMMENT"

SQL> create table a ( "COMMENT" number );

Table created.

我建议你不要这样做,因为你必须在任何地方引用专栏。

答案 1 :(得分:1)

这是因为COMMENT是SQL中的保留字 - 而是使用另一个列名(例如HIREDETAIL_COMMENT):

create table DBDI_HIREDETAIL(
  HireID int not null,
  EquipID int not null,
  Quantity int,
  TotalFee float,
  HireDetail_Comment varchar(200)
);