2012-11-10 55 views
1

我正在Oracle中创建一个表。SQL Developer开发人员助理失去逗号错误

做好以下插入我不断收到缺少逗号错误,但没有逗号从缺什么我可以看到

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

我得到缺少逗号错误

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

回答

0

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

干杯

+0

试图摆脱空间,并把他们周围的单引号仍然有错误:( – Michael

+0

先生,你应该做我说的第二种方式。顺便请分享确切的错误文本与我,我在等待。 – Rikki

+0

我首先尝试了第二个,它没有工作,然后我试图摆脱没有引号的空间,也没有工作,所以尝试用引号和没有空格,这也没有工作,我已经添加了一点额外在原帖 – Michael

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

+0

答复者在电话号码周围加引号。我想数据值中的空格或额外逗号是抛弃解析器。 – marvin

+0

+1用于指出多值属性的错误。 –

0

我有同样的错误,但我不会错过我的INSERT语句逗号,也没有使用双引号,两者都将抛出这个错误是我。

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

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

我得到的提示是,这是我的发言,这显然并不需要一个逗号没有结束。