CREATE TABLE Representatives(
ID NUMBER(4) NOT NULL PRIMARY KEY,
State CHAR(2) NOT NULL,
District NUMBER NOT NULL CHECK(District>=1 AND District<=30),
Party VARCHAR2(30),
LastName VARCHAR2(20),
Firstname VARCHAR2(20),
StartOfTerm DATE,
EndOfTerm DATE,
SenRank VARCHAR2 CHECK(senRank IN ('junior', 'senior')),
Gender CHAR(1) CHECK(Gender IN ('M', 'F')),
Birthdate DATE,
FOREIGN KEY(State) REFERENCES States(State),
FOREIGN KEY(Party) REFERENCES Parties(Party)
);
错误报告-
ORA-00906:缺少左括号
00906. 00000-“缺少左括号”
*原因:
*操作:
找不到错误有人可以指出我正确的方向
答案 0 :(得分:0)
我认为这个问题是varchar2()
缺少的长度:
CREATE TABLE Representatives (
ID NUMBER(4) NOT NULL PRIMARY KEY,
State CHAR(2) NOT NULL,
District NUMBER NOT NULL CHECK(District>=1 AND District<=30),
Party VARCHAR2(30),
LastName VARCHAR2(20),
Firstname VARCHAR2(20),
StartOfTerm DATE,
EndOfTerm DATE,
SenRank VARCHAR2(255) CHECK (senRank IN ('junior', 'senior')),
-----------------^
Gender CHAR(1) CHECK (Gender IN ('M', 'F')),
Birthdate DATE,
FOREIGN KEY (State) REFERENCES States(State),
FOREIGN KEY (Party) REFERENCES Parties(Party)
);
Here是db <>小提琴,没有外键声明。
答案 1 :(得分:0)
SenRank VARCHAR2 CHECK(senRank IN('junior','senior')),
您忘记在VARCHAR2
列中提及SenRank
数据类型的长度。添加适当的长度,它应该可以正常工作:
SenRank VARCHAR2(25) CHECK(senRank IN ('junior', 'senior'))