我在这张桌子上遇到很多问题。它已从一个错误转移到另一个错误。这可能是它的最后一个问题。我正在尝试为什么这个表给出错误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
)
答案 0 :(得分:2)
Oracle INTEGER
类型不允许precision
或scale
实际上,Oracle的INTEGER
与NUMBER(38, 0)
基本相同。
在您的情况下,您可以通过两种方式更改overdue_cost
和days_checked_out
的定义:
将其定义为INTEGERS
,但保留presision
/ scale
:
overdue_cost INTEGER,
days_checked_out INTEGER
将它们定义为NUMBER(10, 0)
- 首选,因为其中一个字段的值为非scale
。
overdue_cost NUMBER(10, 0),
days_checked_out NUMBER(10, 2)