2015-11-09 140 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