在oracle 12c中缺少右括号

问题描述 投票:1回答:1

我有这个代码的问题我检查了很多这个但我无法理解为什么会发生这个错误。

CREATE TABLE PP_EMPLOYEES_PARTITIONED 
(
ID_ONE NUMBER (10) NOT NULL,
FNAME VARCHAR2(30),
LNAME VARCHAR2 (30),
HIRED DATE NOT NULL DEFAULT '1970-01-01',
SEPERATED DATE NOT NULL DEFAULT '9999-12-31',
JOB_COD NUMBER (10) NOT NULL,
STORED_ID NUMBER (10) NOT NULL
)
PARTITION BY RANGE (STORED_ID) 
(
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN (21)
);

错误报告 - ORA-00907:缺少右括号00907. 00000 - “缺少右括号”*原因: *行动:

oracle12c
1个回答
0
投票

你有你的DEFAULTNOT NULL条款the wrong way round;代替:

HIRED DATE NOT NULL DEFAULT '1970-01-01',
SEPERATED DATE NOT NULL DEFAULT '9999-12-31',

它应该是

HIRED DATE DEFAULT '1970-01-01' NOT NULL,
SEPERATED DATE DEFAULT '9999-12-31' NOT NULL,

虽然您不应该依赖隐式日期转换和NLS设置;使用to_date()或日期文字:

CREATE TABLE PP_EMPLOYEES_PARTITIONED 
(
  ID_ONE NUMBER(10) NOT NULL,
  FNAME VARCHAR2(30),
  LNAME VARCHAR2(30),
  HIRED DATE DEFAULT DATE '1970-01-01' NOT NULL,
  SEPERATED DATE DEFAULT DATE '9999-12-31' NOT NULL,
  JOB_COD NUMBER(10) NOT NULL,
  STORED_ID NUMBER(10) NOT NULL
)
PARTITION BY RANGE (STORED_ID) 
(
  PARTITION p0 VALUES LESS THAN (6),
  PARTITION p1 VALUES LESS THAN (11),
  PARTITION p2 VALUES LESS THAN (16),
  PARTITION p3 VALUES LESS THAN (21)
);

Table PP_EMPLOYEES_PARTITIONED created.
© www.soinside.com 2019 - 2024. All rights reserved.