oracle ORA-00907出错:缺少右括号

时间:2015-11-09 14:56:44

标签: sql oracle

我正在使用Oracle10g Express版本,我尝试创建此表但出现了错误,我需要一些帮助来修复“ORA-00907:缺少右括号”问题。我搜索了这个错误的解决方案,看起来主要原因不是“缺少右括号”,但我仍然无法修复代码。

CREATE TABLE Pays
(
    codePays NUMBER(4) CONSTRAINT pk_Pays PRIMARY KEY,
    nomPays VARCHAR(20)
);
CREATE TABLE Equipe
(
    codeEquipe NUMBER(4) CONSTRAINT pk_Equipe PRIMARY KEY,
    nomEquipe VARCHAR(4),
);
CREATE TABLE Etape
(
    numEtape NUMBER(4) CONSTRAINT pk_Etape PRIMARY KEY,
);
CREATE TABLE Coureur
(
    numCoureur NUMBER(4) CONSTRAINT pk_Coureur PRIMARY KEY,
    codeEquipe NUMBER(4),
    codePays NUMBER(4),
    CONSTRAINT FK_Equipe_Coureur FOREIGN KEY(codeEquipe) REFERENCES Equipe(codeEquipe);
    CONSTRAINT FK_Pays_Coureur FOREIGN KEY(codePays) REFERENCES Pays(codePays);
);

1 个答案:

答案 0 :(得分:1)

代码中有两个分号用于创建Coureur表。您还可以在代码中使用悬空逗号来创建Equipe表。用以下代码替换您的代码:

CREATE TABLE Pays
(
    codePays NUMBER(4) CONSTRAINT pk_Pays PRIMARY KEY,
    nomPays VARCHAR(20)
);
CREATE TABLE Equipe
(
    codeEquipe NUMBER(4) CONSTRAINT pk_Equipe PRIMARY KEY,
    nomEquipe VARCHAR(4)
);
CREATE TABLE Etape
(
    numEtape NUMBER(4) CONSTRAINT pk_Etape PRIMARY KEY
);
CREATE TABLE Coureur
(
    numCoureur NUMBER(4) CONSTRAINT pk_Coureur PRIMARY KEY,
    codeEquipe NUMBER(4),
    codePays NUMBER(4),
    CONSTRAINT FK_Equipe_Coureur FOREIGN KEY(codeEquipe) REFERENCES Equipe(codeEquipe),
    CONSTRAINT FK_Pays_Coureur FOREIGN KEY(codePays) REFERENCES Pays(codePays)
);

以下是我认为正在发生的事情,导致您看到的确切错误。您的Oracle工作台正在解析Coureur表定义,并在FK_Equipe_Courer约束的行上命中分号。它将此解释为表定义的结尾,但在此分号之前没有看到右括号,因此它会给出您看到的错误。