【问题标题】:SQL error in Script, single or double quote?脚本中的 SQL 错误,单引号还是双引号?
【发布时间】:2017-12-19 00:52:16
【问题描述】:

对于显示“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)

【问题讨论】:

  • this 有帮助吗?
  • 我通读了两遍,但不理解 SET DEFINE 和 SELECT 的内容。我试过 ||'&'||那是在另一个帖子中,没有好处。我是 SQL 的初学者,一直在苦苦挣扎。

标签: sql oracle oracle-sqldeveloper


【解决方案1】:

默认情况下,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 以恢复默认行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2022-10-17
    • 2013-03-24
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多