2015-11-09 116 views
-1

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

删除最后一个表fk的分号。 – jarlh

回答

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约束条件的行上点击分号。它将此解释为表定义的结尾,但在此分号前没有看到右括号,因此它会给出您看到的错误。

+2

我想,两个分号都需要去。 –

+0

@MatthewMcPeak谢谢......他在“Equipe”表中还有一个尾随的逗号。但是更大的问题是他的SQL编辑器没有指出这些东西吗? –

+0

当我将问题发布到stackoverflow上时,我删除了一些列,所以代码没有那么长..所以我没有注意到..在oracle中,我有正确的代码,但是用最后一张表fk的分号。 – zerocoldTUN