【发布时间】:2015-07-08 04:12:31
【问题描述】:
更新: 我刚刚发现问题不是来自反斜杠。问题是单引号问题。我正在尝试插入带有撇号的单词,只要我的列表中有一个,撇号就会被视为单引号。因此,即使我在原始插入值中没有反斜杠,Oracle 也会自动添加反斜杠。
例子:
INSERT INTO DICTIONNAIRE (Mot) 值 ('s\'ensuivre');
原来是
INSERT INTO DICTIONNAIRE (Mot) VALUES ('s'ensuivre');
有没有办法将撇号区别于值周围的单引号?
原问题:
我想插入一个反斜杠作为字符串:
INSERT INTO Dictionnaire (Mot,Definition) VALUES ('abasourdir','v. tr.\\n Ahurir.');有没有办法防止 反斜杠 做它的事 通常会这样做,即:“转义单个字符或符号”,并且 有 DBMS 把它当作一个简单的字符串吗?
设置定义关闭;不工作。
谢谢!
【问题讨论】:
-
双反斜杠不起作用吗?
-
您的语句应该可以工作,反斜杠在 SQL 插入中不是转义字符。您使用的是什么 SQL 客户端?
-
@mr_eclair 除非转义字符设置为
'\' -
您是在编写 SQL 脚本还是在传递其他语言的查询?如果是第二种,几乎总有一种方法可以参数化您的查询,以便您可以自然地传递数据,而不必处理转换/转义数据。
标签: sql oracle escaping sql-insert