2017-04-07 15 views
0

誰かがこのSQLの何が問題なのか、なぜそれが実行されないのかを教えてください。Oracle SQL文が機​​能しない

DROP TABLE CAR5849; 
CREATE TABLE CAR5849 (
    IDNO  VARCHAR(20) PRIMARY KEY 
, MAKE  VARCHAR(20) 
, MILES  NUMBER(6) 
, DATEOFPURCHASE  DATE 
); 


INSERT INTO CAR5849 (IDNO, MAKE, MILES, DATEOFPURCHASE) VALUES (PGJ058,'Red Mustang', 27070, TO_DATE(‘11/07/2011’, ‘DD/MM/YYYY’); 
INSERT INTO CAR5849 (IDNO, MAKE, MILES, DATEOFPURCHASE) VALUES (PGJ058,'Yellow Mustang', 35725, TO_DATE(‘24/09/2015’, ‘DD/MM/YYYY’); 
INSERT INTO CAR5849 (IDNO, MAKE, MILES, DATEOFPURCHASE) VALUES (PGJ058,'Black Mustang', 14589, TO_DATE(‘11/02/2010’, ‘DD/MM/YYYY’); 
+2

どのようなエラーが表示されますか? –

+3

to_dateには直接引用符が必要です。 – jarlh

+0

NLSパラメータを確認できますか? –

答えて

1

最初の引数の前後に一重引用符がありません。あなたが複数の行に同じ値に列を設定したいように見えるので、IDNOから主キーを削除し

  • 代わりにVARCHAR
  • DATEのVARCHAR2代わりTO_DATE()
  • の:私は他の三つの変更をお勧めします。

ので:あなたはこの列の重複したエントリを追加することはできませんので

DROP TABLE CAR5849; 

CREATE TABLE CAR5849 (
    IDNO  VARCHAR2(20), 
    MAKE  VARCHAR2(20), 
    MILES  NUMBER(6), 
    DATEOFPURCHASE DATE 
); 

INSERT INTO CAR5849 (IDNO, MAKE, MILES, DATEOFPURCHASE) 
    VALUES ('PGJ058', 'Red Mustang', 27070, DATE '2011-07-11'); 
INSERT INTO CAR5849 (IDNO, MAKE, MILES, DATEOFPURCHASE) 
    VALUES ('PGJ058', 'Yellow Mustang', 35725, DATE '2015-09-24'); 
INSERT INTO CAR5849 (IDNO, MAKE, MILES, DATEOFPURCHASE) 
    VALUES ('PGJ058', 'Black Mustang', 14589, DATE '2010-02-11'); 
+0

これを試しただけで、次のエラーメッセージが表示されます。行1のエラー: ORA-00001:一意制約違反 – Karl

+0

@ Karl。 。 。 'IDNO'を主キーとして定義し、同じ値を複数の行に入れます。あなたはそれをすることはできません。 –

+0

おっとそれはばかげたミスだった、私はちょうどユニークな値を作った、エラーがなくなっているが、そのテーブルを表示していない? – Karl

0

列IDNOは、主キーとして定義され、すべての3つの挿入文は、同じIDNO値を持つIDNOためのユニークな値を持っているか、削除IDNOのプライマリキー

+0

ありがとう、私はちょうどエラーを解決したようだが、まだそれは私のテーブルを表示していないプライマリキーを取り除いた – Karl

+0

挿入ステートメントでto_dateからちょうど日付に変更しようとすると、それらのうちの1つだけを閉じ、IDNOの値を「PGJ058」(引用符付き)としてvarchar – Nandula

関連する問題