2012-04-11 16 views
0

私は、この表を作成しました:のOracle SQL構文エラー

CREATE TABLE diagnosis(
    diag_id NUMBER(8), 
    SCT_CODE CHAR(10), 
    diag_date DATE NOT NULL, 
    GP_ID CHAR(5), 
    PHN CHAR(5), 
    Rx CHAR(3), 
    CONSTRAINT diagnosis_PK PRIMARY KEY (diag_id, SCT_CODE), 
    CONSTRAINT diagnosis_FK4 FOREIGN KEY (SCT_CODE) 
    REFERENCES symptom (SCT_CODE) ON DELETE CASCADE, 
    CONSTRAINT diagnosis_FK1 FOREIGN KEY (GP_ID) 
    REFERENCES GP (GP_ID) ON DELETE CASCADE, 
    CONSTRAINT diagnosis_FK2 FOREIGN KEY (PHN) 
    REFERENCES Patient (PHN) ON DELETE CASCADE, 
    CONSTRAINT diagnosis_FK3 FOREIGN KEY (Rx) 
    REFERENCES drug (Rx) 
    ON DELETE CASCADE); 

私はテーブルを移入するために、これらの方法の両方を試してみましたし、それが機能していません。私の構文に間違っているものを教えてください。

INSERT ALL 
    INTO DIAGNOSIS VALUES ('10000001', '38341003', '04-APR-12', ‘GP001’, ‘p1001’, ‘Rx1’) 
    INTO DIAGNOSIS VALUES ('10000002', '423430007', '07-APR-12', ‘GP001’, ‘p1001’, ‘Rx1’) 
    INTO DIAGNOSIS VALUES ('10000003', '371032004', '05-APR-12', ‘GP002’, ‘p1002’, ‘Rx2’) 
    INTO DIAGNOSIS VALUES ('10000004', '38341003', '08-APR-12', ‘GP003’, ‘p1003’, ‘Rx1’) 
    INTO DIAGNOSIS VALUES ('10000005', '73211009', '07-APR-12', ‘GP003’, ‘p1003’, ‘Rx3’) 
    INTO DIAGNOSIS VALUES ('10000006', '73211009', '06-APR-12', ‘GP004’, ‘p1004’, ‘Rx3’) 
    INTO DIAGNOSIS VALUES ('10000007', '38341003', '10-APR-12', ‘GP001’, ‘p1005’, ‘Rx1’) 
    SELECT * FROM DUAL; 

/* Populate Diagnosis Table */ 

INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000001', ‘38341003’, '04-Apr-12', 'GP001', 'p1001', 'Rx1'); 
INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000002', ‘423430007’, '07-Apr-12', 'GP001', 'p1001', 'Rx1'); 
INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000003', ‘371032004’, '05-Apr-12', 'GP003', 'p1002', 'Rx2'); 
INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000004', ‘38341003’, '08-Apr-12', 'GP003', 'p1003', 'Rx1'); 
INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000005’, ‘73211009’, '07-Apr-12', 'GP003', 'p1003', 'Rx3'); 
INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000006', ‘73211009’, '06-Apr-12', 'GP004', 'p1004', 'Rx3'); 
INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000006', ‘38341003’, '10-Apr-12', 'GP001', 'p1005', 'Rx1'); 
+0

どのようなエラーメッセージを取得していますか? – Marc

+2

ようこそStackOverflowへ。あなたの質問に「緊急」「即刻」のような言葉を使わないでください。あなたの質問は、あなたにとって非常に重要ですが、他の人が投稿したものよりも緊急でも重要でもありません。あなたの質問が緊急で、待つことができない場合は、コンサルタントを雇い、すぐに注意を促してください。それ以外の場合は、ドラマや嘆願なしでここに尋ねると、人々はできるだけ早くあなたを助けます。また、ヘルプが必要な場合は、問題を明確に述べる必要があります。あなたは「構文ヘルプ」と言っていますが、人々があなたを助けるのに役立つエラーメッセージを提供しないので、人々が詳細を求めている間に時間を無駄にします。 –

+2

これはカットアンドペースト(書式設定の前)の場合、間違った引用符文字をメモする(例: 'GP001'ではなく 'GP001') – Glenn

答えて

4

コメント者(@Glenn)が言うように、あなたの問題はおそらく一重引用符の使用が非常に矛盾しています。

これらの作業の両方:すべて私が行われなくなってと'が常に使用されていることを確認作った

INSERT ALL 
    INTO DIAGNOSIS VALUES 
     ('10000001', '38341003', '04-APR-12', 'GP001', 'p1001', 'Rx1') 
    INTO DIAGNOSIS VALUES 
     ('10000002', '423430007', '07-APR-12', 'GP001', 'p1001', 'Rx1') 
SELECT * FROM DUAL; 

INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000003', '371032004', '05-Apr-12', 'GP003', 'p1002', 'Rx2'); 
INSERT INTO Diagnosis(diag_id, SCT_CODE, diag_date, GP_ID, PHN, Rx) 
    VALUES ('10000004', '38341003', '08-Apr-12', 'GP003', 'p1003', 'Rx1'); 

このsqlfiddle参照してください:そのselect * from dualはとても任意のようなのでhttp://sqlfiddle.com/#!4/c824d/1(。私はすべてのことを入力したくないので、私は制約を削除した場合)

けれどもが、個人的に私はいつも最初の方法を嫌ってきました(はい、私はそれが動作することを知っています - それは審美的な問題の多くです。)

+0

ヘルプのおかげで引用符が欠落しています。 – user1325466

+1

あなたは歓迎です - 今、StackOverflowで、おかげさまでお答えする方法は、回答を有用なものとしてマークしたり、答えを受け入れることです。 (それは、もし私がw/@Glennを分かち合うことができれば)。 –