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

Invalid Character during my SQL Plus Insert Statement

我为我的 SQL class 创建了一个 table,但是当我尝试插入数据时,它在 Borough 字符输入上给我一个错误:

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"

具体来说,它告诉我 "Error on Line 2, invalid Character" 在布鲁克林的字母 k 上。 我尝试了不同的引号组合,但它仍然给了我同样的错误,这次是 phone 数字

中的数字 3
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

如有任何帮助,我们将不胜感激!

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

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 中的所有列。

"Curly" 文本字段周围的引号是由使用像 Microsoft Word 这样的编辑器引起的,它是为人类阅读的文档设计的,而不是 SQL 查询。引号必须是 ASCII ' 单引号字符。正如@The Impaler 所回答的那样,在 INSERT 语句中对所有文本值使用单引号。

为避免将来出现此问题,请使用具有良好语法高亮显示功能的专用文本编辑器 .sql 文件,例如 Notepad++ for Windows or Sublime Text for Mac. Or you can just do all of your editing in the SQL client, such as Oracle SQL Developer.