1

我正在 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 -“缺少逗号”

4

3 回答 3

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

于 2012-11-10T18:46:09.413 回答
0

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

干杯

于 2012-11-10T18:46:23.783 回答
0

我遇到了同样的错误,但我的插入语句中没有遗漏逗号,也没有使用双引号,这两者都会引发此错误。

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

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

我得到的提示是它在我的陈述的末尾,显然不需要逗号。

于 2016-07-13T17:22:05.120 回答