【问题标题】:ORA-30089 when execute CREATE TABLE with a DATE type fieldORA-30089 使用 DATE 类型字段执行 CREATE TABLE
【发布时间】:2019-08-08 08:10:35
【问题描述】:

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

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 数据类型我不知道我是否弄错了......

【问题讨论】:

    标签: sql database oracle ddl


    【解决方案1】:

    CREATE TABLE 语句将列DURACION 声明为数据类型INTERVAL

    INTERVAL 不是有效的数据类型。您可以使用INTERVAL YEAR TO MONTHINTERVAL 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
    );
    

    Demo on DB Fiddle

    参考:Oracle datatypes

    【讨论】:

      【解决方案2】:

      持续时间字段中的类型 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
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-02
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 2013-12-27
        • 2014-04-21
        • 1970-01-01
        相关资源
        最近更新 更多