2011-07-25 5 views
5
CREATE TABLE Persons (
    P_Id int NOT NULL, 
    LastName varchar(255) NOT NULL, 
    FirstName varchar(255), 
    PRIMARY KEY (P_Id) 
) 

CREATE TABLE Orders (
    O_Id int NOT NULL PRIMARY KEY, 
    OrderNo int NOT NULL, 
    P_Id int FOREIGN KEY REFERENCES Persons(P_Id) 
) 

表の受注を作成しながら、私はエラーを取得しています:ORA-00907:欠落している右括弧

ORA-00907:欠落している右括弧

+0

は二つの単語 'FOREIGN KEY'を除外します。 FOREIGN KEYを別の句(カンマで区切ったもの)として使用し、フィールドリストを指定するか、既存のフィールドの最後にREFERENCESを使用します。 「Oracle SQLリファレンス」を参照してください。 – mihi

+0

この種のエラーを解決するためのオンラインツールはありますか?私のコードはSQL Developerで動作し、Cognos 10のレポート・スタジオを検証しますが、SQLを生成しようとするとこのエラーが発生します。私はそれが実際には括弧によって引き起こされていないと推測していますが、これを整理するためのツールがありますか? –

+0

はまた、IBMナレッジセンターからこれを見つけた - ORA-00907も左外部結合と句に使用するクエリで発生する可能性があります。https://www.ibm.com/support/knowledgecenter/SSMR4U_10.1.0/com.ibm。 swg.ba.cognos.tg_bitshoot.10.1.1.doc/c_theora-00907errorappearswhenrunningareport.html#Theoraの-00907ErrorAppearsWhenRunningaReport –

答えて

11

あなたが外部キーのインラインを定義する場合カラム定義では、FOREIGN KEYは指定しないでください。定義から削除します。

はこれを試してみてください:

CREATE TABLE Orders 
( 
    O_Id int NOT NULL PRIMARY KEY, 
    OrderNo int NOT NULL, 
    P_Id int REFERENCES Persons(P_Id) 
) 
+0

ありがとうございました、しかし、私は例を見てきました、 P_ID int型FOREIGN KEY参照者(P_ID) – Kiran

+0

があればよろしいですOracleデータベース用のものでしたか? – Chandu

+2

検索して、私が常に新しい名前付き制約を定義して外部キーを宣言しなければならないことを怒らせた後、これは要件が実際に何であるかを正確に示しています。 W3schools.comは現在のOracle fk定義標準では間違っています –

関連する問題