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 以恢复默认行为。
对于它所说的部分 "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 以恢复默认行为。