java.sql.SQLSyntaxErrorException: ORA-00904: : 标识符无效

Posted

技术标签:

【中文标题】java.sql.SQLSyntaxErrorException: ORA-00904: : 标识符无效【英文标题】:java.sql.SQLSyntaxErrorException: ORA-00904: : invalid identifier 【发布时间】:2017-09-21 08:27:37 【问题描述】:
CREATE TABLE S_6500_67_SNAPSHOT_ROWDATA_201([MATERIAL] varchar2(2000), [OBJVERS] varchar2(2000), [CHANGED] varchar2(2000), [AF_COLOR] varchar2(2000), [AF_FCOCO] varchar2(2000), [AF_GENDER] varchar2(2000), [PROD_HIER] varchar2(2000),  [WIDTH] decimal)

当我运行上述查询时,我得到了异常:

【问题讨论】:

Oracle 是否理解这些方括号? ANSI SQL 有用于分隔标识符的双引号,例如"MATERIAL". 去掉列名中的[ ] 【参考方案1】:

在Oracle中创建表的正确语法是

  CREATE TABLE table_name
( 
  column1 datatype [ NULL | NOT NULL ],
  column2 datatype [ NULL | NOT NULL ],
  ...
  column_n datatype [ NULL | NOT NULL ]
);

所以,只需从列名中删除方括号,我认为您应该按如下方式编写查询

CREATE TABLE S_6500_67_SNAPSHOT_ROWDATA_201(MATERIAL varchar2(2000), OBJVERS varchar2(2000), CHANGED varchar2(2000), AF_COLOR varchar2(2000), AF_FCOCO varchar2(2000), AF_GENDER varchar2(2000), PROD_HIER varchar2(2000),  WIDTH decimal)

【讨论】:

以上是关于java.sql.SQLSyntaxErrorException: ORA-00904: : 标识符无效的主要内容,如果未能解决你的问题,请参考以下文章