2017-04-07 82 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

您在第一個參數周圍缺少單引號。我會建議其他三個變化:

  • VARCHAR2而不是VARCHAR
  • DATE而不是TO_DATE()
  • IDNO刪除主鍵,因爲你似乎想將列設置爲多個列中的值相同。

所以:

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個INSERT語句具有相同的IDNO值,具有獨特的價值IDNO或刪除來自IDNO的主鍵

+0

謝謝,我剛剛擺脫了主鍵,似乎已經解決了錯誤,但它仍然沒有向我展示任何表格 – Karl

+0

在插入語句嘗試更改爲to_date到日期,也打開2後的值「(」但只關閉其中一個,IDNO值爲'PGJ058'(帶引號),因爲它被定義爲varchar – Nandula