Oracle SQL 错误 ORA-00907:table 创建时缺少右括号

Oracle SQL error ORA-00907: missing right parenthesis on table create

我想在 Oracle 11g 中创建下表,但出现以下错误:Oracle SQL error ORA-00907: missing right parenthesis。为什么会这样?

CREATE TABLE DOCUMENTATION
( 
  NAME varchar2(200) not null,
  VALUE varchar2(500) not null,
  QUERY varchar2(200) not null,
  INSERTDATE date(7) not null
);

DATE 数据类型没有长度。应该写成

CREATE TABLE DOCUMENTATION
( 
  NAME varchar2(200) not null,
  VALUE varchar2(500) not null,
  QUERY varchar2(200) not null,
  INSERTDATE date not null
);

此错误的原因是您声明了 INSERTDATE date(7)。摆脱 (7),一切都应该按预期工作。

这是因为您不需要为 DATE 数据类型提供长度。 Oracle 数据库使用自己的内部格式来存储日期。日期数据存储在每个7字节的定长字段中,分别对应世纪、年、月、日、时、分,second.The DATE数据类型存储年(包括世纪)、月、日、小时、分钟和秒(午夜后)。

应该写成-

CREATE TABLE DOCUMENTATION
( 
  NAME varchar2(200) not null,
  VALUE varchar2(500) not null,
  QUERY varchar2(200) not null,
  INSERTDATE date not null
);