我的SQL Plus插入语句中的无效字符

时间:2018-11-28 21:39:19

标签: sql oracle sqlplus

我为SQL类制作了一个表,但是当我尝试插入数据时,它给我带来了Borough char输入错误:

CREATE TABLE Child (
childID VARCHAR (5) PRIMARY KEY,
firstName CHAR (10),
lastName CHAR (15),
dateOfBirth DATE,
street VARCHAR (20),
city CHAR (10),
ZIP VARCHAR (5),
phone VARCHAR (15),
borough CHAR (15)
);

INSERT INTO Child
VALUES (‘C001’, John, Wick, 2017-02-16 , ‘123 Jay Street’, New York, ‘11201’, ‘212-777- 
6677’, Brooklyn);
           *
"Error at Line 2, invalid Character ORA-00911"

具体来说,这是在布鲁克林的字母k上告诉我“第2行错误,无效字符”。 我尝试使用不同的引号组合,但是仍然给我相同的错误,这次是电话号码中的数字

INSERT INTO Child
VALUES (‘C002’, ‘Wayne’, ‘Brady’, ‘2017-02- 
16’, ’24 Atlantic Ave’, ‘New York’, ‘11201’, 
‘212-888-2345’, ‘Brooklyn’);
          *
"Error at Line 2, invalid Character ORA-00911

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:6)

您使用的那些单引号很奇怪。改为使用标准单引号('),如下所示:

INSERT INTO Child
(childID, firstName, lastName, dateOfBirth, street, city, ZIP, phone, borough)
VALUES ('C001', 'John', 'Wick', to_date('2017-02-16','YYYY-MM-DD'), '123 Jay Street', 'New York', '11201', '212-777-6677', 'Brooklyn');

在Oracle中,您还应该:

  • 避免使用VARCHAR类型。请改用VARCHAR2
  • 命名INSERT中的所有列。

答案 1 :(得分:3)

文本字段周围的“ Curly”引号是由使用Microsoft Word之类的编辑器引起的,该编辑器设计用于人类读取的文档,而不是SQL查询。引号必须是ASCII '单引号字符。对INSERT语句中的所有文本值使用单引号,由@The Impaler回答。

为避免将来出现此问题,请对.sql文件(例如Notepad++ for WindowsSublime Text for Mac)使用语法突出显示的专用文本编辑器。或者,您也可以在SQL客户端中进行所有编辑,例如Oracle SQL Developer