SQL Developer帮助缺少逗号错误

时间:2012-11-10 18:42:39

标签: sql oracle11g

我正在Oracle中创建一个表。

在执行以下插入时,我一直错过逗号错误,但我看不到任何逗号

INSERT INTO driver 
  (employee_no, first_name, last_name, ni_no, telephone, hazardous_goods)
VALUES 
  (122085,'Norris','Vasyutichev','EE 91 44 59 G',01809 7872896,07610 2265827,'Y');

即使

INSERT INTO driver 
  (first_name, last_name, ni_no, hazardous_goods)
VALUES
  ('Norris','Vasyutichev','EE914459G','Y');

我收到了丢失的逗号错误

  

命令行错误:27列:86
  错误报告:
  SQL错误:ORA-00917:缺少逗号
  00917. 00000 - “缺少逗号”

3 个答案:

答案 0 :(得分:1)

试试这个:

INSERT INTO driver 
  (employee_no, first_name, last_name, ni_no, telephone, hazardous_goods)
VALUES 
  (122085,'Norris','Vasyutichev','EE 91 44 59 G','01809 7872896, 07610 2265827','Y');

此外,您似乎尝试使用逗号作为分隔符存储多个电话号码。您应该尝试避免这种情况,而是创建一个名为employeePhoneNumbers的新表。像这样:

CREATE TABLE employeePhoneNumbers
( 
    employee_no    INT,
    telephone      VARCHAR2(30)
);

在employee_no上添加外键约束。

然后为每个电话号码插入一条新记录:

INSERT INTO employeePhoneNumbers(employee_no, telephone) VALUES (122085, '01809 7872896');
INSERT INTO employeePhoneNumbers(employee_no, telephone) VALUES (122085, '07610 2265827');

您可能会问为什么要这样做?用于数据库规范化。在此处阅读更多内容:http://www.informit.com/articles/article.aspx?p=30646

答案 1 :(得分:0)

您实际上错过了在"01809 7872896"号码之间加上空格,而"018097872896"不含空格,"07610 2265827""076102265827"。如果它与列列表匹配。如果没有,请通过在它们周围放置单引号将其更改为字符串。像'01809 7872896,07610 2265827'一样,我认为你应该做第二个,因为它似乎是用逗号分隔的电话号码作为字符串。

干杯

答案 2 :(得分:0)

我有同样的错误,但是我的插入语句中没有错过逗号,也没有使用双引号,这两个都会引发此错误。

我遗漏的是插入语句值的右括号,但是Oracle SQL Developer给了我这个错误。

Error at Command Line:84 Column:40
Error report:
SQL Error: ORA-00917: missing comma
00917. 00000 -  "missing comma"

我得到的暗示是它在我的陈述结束时,显然不需要逗号。