简体   繁体   English

Oracle SQL语句不起作用

[英]Oracle SQL statement not working

Can someone please tell me exactly what is wrong with this SQL and why it is not executing! 有人可以告诉我此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’);

You are missing single quotes around the first argument. 您在第一个参数周围缺少单引号。 I would recommend three other changes: 我将建议其他三个更改:

  • VARCHAR2 instead of VARCHAR VARCHAR2代替VARCHAR
  • DATE instead of TO_DATE() DATE而不是TO_DATE()
  • Remove the primary key from IDNO , because you appear to want to set the column to the same value in multiple rows. IDNO删除主键,因为您似乎想将多行中的列设置为相同的值。

So: 所以:

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');

列IDNO被定义为主键,因此您不能为此列添加重复的条目,所有3个插入语句都具有相同的IDNO值,IDNO具有唯一的值或从IDNO中删除主键

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM