需要帮助在SQL开发人员中查找语法

时间:2013-11-06 13:48:11

标签: sql database oracle syntax-error

我有以下查询将值插入到我的Customer表中:

INSERT INTO customer(Booking_id,First_name,Last_name,Phone,Address,Town,Postcode,email) 
VAlUES
(1,'Elroy','Craddock',01497 3139773','36 Yaffingale Gate','Tadley','RG78 2AB','e.craddock@yautia.co.uk')

运行后写

Error starting at line 1,551 in command:
INSERT INTO customer (Booking_id, First_name, Last_name, Phone,  Address, Town, Post code, email) VALUES(   1551    ,'  Leonard ',' Babbs   ',  01959 8159688   ,'  46 Zoophagy Green   ',' Choppington ',' NE41 5DB    ',' l.babbs@sommelier.co.uk ')
Error at Command Line:1,551 Column:86
Error report:
SQL Error: ORA-00917: missing comma
00917. 00000 -  "missing comma"
*Cause:    
*Action:

我一直试图修复这个语法错误差不多一天了!任何帮助/建议表示赞赏!谢谢

3 个答案:

答案 0 :(得分:4)

这是您的查询:

INSERT INTO customer (Booking_id, First_name, Last_name, Phone,  Address, Town, Post code, email) VALUES(   1551    ,'  Leonard ',' Babbs   ',  01959 8159688   ,'  46 Zoophagy Green   ',' Choppington ',' NE41 5DB    ',' l.babbs@sommelier.co.uk ')

您的问题在于:01959 8159688。这是一个无效的数字文字。

取决于Phone列类型,它必须是:'01959 8159688'(如果是文本列)或01959.8159688(如果它是数字列)。

答案 1 :(得分:2)

问题在于01959 8159688。 假设这是一个电话号码,并且你想保留空间以便将区号与数字的其余部分分开,你应该用单引号括起来:'01959 8159688' - 否则,它被解释为两个不相关的数字文字。

答案 2 :(得分:0)

我的建议是格式化您的查询:

insert into yourtable (
field1
, field2
, etc
)
values (
value1
, value2
, etc
)

它使逗号更加明显。它还使计数更容易,因为您需要相同数量的字段和值。最后,如果您需要查找有问题的查询部分,它会使评论更容易。