Spring boot “oracle.jdbc.OracleDatabaseException: ORA-00904: invalid identifier” 创建表时出错
Posted
技术标签:
【中文标题】Spring boot “oracle.jdbc.OracleDatabaseException: ORA-00904: invalid identifier” 创建表时出错【英文标题】:Spring boot "oracle.jdbc.OracleDatabaseException: ORA-00904: invalid identifier" Error while creating table 【发布时间】:2021-06-28 11:01:17 【问题描述】:在 Spring Boot 中,我使用 Code-First 方法创建数据库表。 然后在运行应用程序时,其中一个表的结果显示此错误:
WARN o.h.t.s.i.ExceptionHandlerLoggedImpl.handleException - GenerationTarget encountered exception accepting command : Error executing DDL "alter table statistic add date timestamp" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceExcepti
on: Error executing DDL "alter table statistic add date timestamp" via JDBC Statement]
oracle.jdbc.OracleDatabaseException: ORA-00904: : invalid identifier
类实体如下:
@Entity
@Table(name = "statistic")
public class Statistic
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String title;
private Long value;
private Date date;
private String unit;
public String getTitle()
return title;
public void setTitle(String title)
this.title = title;
public Long getValue()
return value;
public void setValue(Long value)
this.value = value;
public Date getDate()
return date;
public void setDate(Date date)
this.date = date;
public String getUnit()
return unit;
public void setUnit(String unit)
this.unit = unit;
有谁知道问题出在哪里?
【问题讨论】:
为日期数据类型添加@Temporal(TemporalType.TIMESTAMP)
。喜欢@Temporal(TemporalType.TIMESTAMP) private Date date
这能回答你的问题吗? Java-Oracle - Unable to create specific table
【参考方案1】:
这是错误的:
alter table statistic add date timestamp
----
this
date
是 Oracle 数据类型的保留字。将列名更改为其他名称,例如datum
, c_date
, statistic_date
, ... 然后运行
alter table statistic add datum timestamp
【讨论】:
非常感谢,对,是保留关键字错误,我改了字段名,问题解决了! 最受欢迎的reserved words是USER
和DATE
。以上是关于Spring boot “oracle.jdbc.OracleDatabaseException: ORA-00904: invalid identifier” 创建表时出错的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot,Spring Data JPA多数据源支持配置