ORA-30089 当使用 DATE 类型字段执行 CREATE TABLE 时
ORA-30089 when execute CREATE TABLE with a DATE type field
创建以下 table 时出现以下错误:
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
DURACION INTERVAL,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
);
不知道是不是oracle给用户的权限,因为我在桌面上,这里他不让我创建table。
Error que empieza en la línea: 28 del comando :
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
DURACION INTERVAL,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
)
Informe de error -
ORA-30089: falta <campo datetime> o no es válido
30089. 00000 - "missing or invalid <datetime field>"
*Cause: A <datetime field> (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) is
expected but not found, or a <datetime field> specified the
<end field> in an <interval qualifier> is more significant
than its <start field>.
*Action:
其他 tables 我创建得很好但是使用 DATE
数据类型我不知道我是否理解错了...
CREATE TABLE
语句将列 DURACION
声明为数据类型 INTERVAL
INTERVAL
不是有效的数据类型。您可以使用 INTERVAL YEAR TO MONTH
或 INTERVAL DAY TO SECOND
(具有各种精度)。
考虑,例如:
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
DURACION INTERVAL YEAR TO MONTH,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
);
参考:Oracle datatypes.
持续时间字段中的类型 INTERVAL 无效,它不作为数据类型存在。我建议您使用开始日期和结束日期,这样更好并且可以提供更好的信息。使用间隔会在未来带来很多问题。
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
FECHA_INICIO DATE,
FECHA_FIN DATE,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
)
创建以下 table 时出现以下错误:
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
DURACION INTERVAL,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
);
不知道是不是oracle给用户的权限,因为我在桌面上,这里他不让我创建table。
Error que empieza en la línea: 28 del comando :
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
DURACION INTERVAL,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
)
Informe de error -
ORA-30089: falta <campo datetime> o no es válido
30089. 00000 - "missing or invalid <datetime field>"
*Cause: A <datetime field> (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) is
expected but not found, or a <datetime field> specified the
<end field> in an <interval qualifier> is more significant
than its <start field>.
*Action:
其他 tables 我创建得很好但是使用 DATE
数据类型我不知道我是否理解错了...
CREATE TABLE
语句将列 DURACION
声明为数据类型 INTERVAL
INTERVAL
不是有效的数据类型。您可以使用 INTERVAL YEAR TO MONTH
或 INTERVAL DAY TO SECOND
(具有各种精度)。
考虑,例如:
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
DURACION INTERVAL YEAR TO MONTH,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
);
参考:Oracle datatypes.
持续时间字段中的类型 INTERVAL 无效,它不作为数据类型存在。我建议您使用开始日期和结束日期,这样更好并且可以提供更好的信息。使用间隔会在未来带来很多问题。
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
FECHA_INICIO DATE,
FECHA_FIN DATE,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
)