我正在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 - “缺少逗号”
答案 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"
我得到的暗示是它在我的陈述结束时,显然不需要逗号。