SQL 脚本错误,单引号还是双引号?

SQL error in Script, single or double quote?

对于它所说的部分 "b&d jigsaw" 在脚本 运行 之后 &D 一直消失。当我 运行 它时,系统提示我为 D 添加一个值。我尝试在 & 和 d 之间添加一个引号,但没有任何效果。任何人有任何想法吗?脚本下方是错误。谢谢!

INSERT INTO PRODUCT VALUES ('2232/QTY', 'B&D jigsaw, 12-in. blade', '30-Dec-11', 8, 5, '109.92', '0.05', 24288);
INSERT INTO PRODUCT VALUES ('2232/QWE', 'B&D jigsaw, 8-in. blade', '24-Dec-11', 6, 5, '99.87', '0.05', 24288);
INSERT INTO PRODUCT VALUES ('2238/QPD', 'B&D cordless drill, 1/2-in.', '20-Jan-12', 12, 5, '38.95', '0.05', 25595);

已插入 1 行。

旧:

INSERT INTO PRODUCT VALUES ('2232/QTY', 'B&D jigsaw, 12-in. blade', '30-Dec-11', 8, 5, '109.92', '0.05', 24288)

新:

INSERT INTO PRODUCT VALUES ('2232/QTY', 'B jigsaw, 12-in. blade', '30-Dec-11', 8, 5, '109.92', '0.05', 24288)

已插入 1 行。

旧:

INSERT INTO PRODUCT VALUES ('2232/QWE', 'B&D jigsaw, 8-in. blade', '24-Dec-11', 6, 5, '99.87', '0.05', 24288)

新:

INSERT INTO PRODUCT VALUES ('2232/QWE', 'B jigsaw, 8-in. blade', '24-Dec-11', 6, 5, '99.87', '0.05', 24288)

已插入 1 行。

旧:

INSERT INTO PRODUCT VALUES ('2238/QPD', 'B&D cordless drill, 1/2-in.', '20-Jan-12', 12, 5, '38.95', '0.05', 25595)

新:

INSERT INTO PRODUCT VALUES ('2238/QPD', 'B cordless drill, 1/2-in.', '20-Jan-12', 12, 5, '38.95', '0.05', 25595)

默认情况下,SQL Plus 将“&”视为开始替换字符串的特殊字符。当 运行 脚本由于其他原因恰好包含“&”时,这可能会导致问题:

如果您知道您的脚本包含(或可能包含)包含“&”字符的数据,并且您不希望出现上述替换行为,则使用 set define off 关闭该行为,同时 运行脚本:

SQL> set define off
SQL> insert into customers (customer_name) values ('Marks & Spencers Ltd');

1 row created.

SQL> select customer_name from customers;

CUSTOMER_NAME
------------------------------
Marks & Spencers Ltd

您可能希望在脚本末尾添加 set define on 以恢复默认行为。