SQL:缺少右括号

时间:2015-05-03 20:08:14

标签: sql oracle

我在这张桌子上遇到很多问题。它已从一个错误转移到另一个错误。这可能是它的最后一个问题。我正在尝试为什么这个表给出错误ORA-00907:缺少右括号:

CREATE TABLE rental_transaction(

    rental_id CHAR(8)
       CONSTRAINT pk_rental_id_rental_transact
           PRIMARY KEY,

    rental_date DATE NOT NULL,

    overdue_cost INTEGER(10,2),

    due_date DATE NOT NULL,

    returned_date DATE,

    days_checked_out INTEGER(10,0),

    member_id CHAR(8)
        CONSTRAINT fk_member_id_rental_transact
        REFERENCES member
        ON DELETE CASCADE,

    movie_id VARCHAR2(30) 
        CONSTRAINT fk_movie_id_rental_transact
        REFERENCES movie
        ON DELETE CASCADE

)

1 个答案:

答案 0 :(得分:2)

Oracle INTEGER类型不允许precisionscale 实际上,Oracle的INTEGERNUMBER(38, 0)基本相同。

在您的情况下,您可以通过两种方式更改overdue_costdays_checked_out的定义:

  1. 将其定义为INTEGERS,但保留presision / scale

    overdue_cost     INTEGER,    
    days_checked_out INTEGER
    
  2. 将它们定义为NUMBER(10, 0) - 首选,因为其中一个字段的值为非scale

    overdue_cost     NUMBER(10, 0),    
    days_checked_out NUMBER(10, 2)