使用DATE类型字段执行CREATE TABLE时的ORA-30089

时间:2019-03-18 00:11:24

标签: sql database oracle ddl

创建下表时出现以下错误:

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对用户的许可,因为我在桌面上,在这里他不允许我创建表。

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:

我创建的其他表很好,但是数据类型为DATE,我不知道我是否记错了...

2 个答案:

答案 0 :(得分:4)

view.translatesAutoresizingMaskIntoConstraints 语句将列extension UIView/NSView { override var translatesAutoresizingMaskIntoConstraints: Bool = false } 声明为数据类型CREATE TABLE

DURACION不是有效的数据类型。您可以使用INTERVALINTERVAL(具有各种精度)。

考虑一下,例如:

INTERVAL YEAR TO MONTH

Demo on DB Fiddle

参考:Oracle datatypes

答案 1 :(得分:0)

持续时间字段中的INTERVAL类型无效,它不作为数据类型存在。我建议您使用开始日期和结束日期,这会更好,并且可以提供更好的信息。间隔工作会在将来带来很多问题。

ifelse(times < lag(times), times, lag(times))