【发布时间】:2021-11-16 00:54:39
【问题描述】:
我使用双反斜杠将 SQL 查询从 python 服务器传递到 Oracle:
SELECT
ID
FROM
Works
WHERE
NAME IN ('ABC\\ABC', 'sdf\\sdfsdf', 'lkj\\sdfsdf')
查询执行后我什么也没得到。但是当删除一个反斜杠并在DBeaver(SQL Tool)中执行时,结果是OK的。
表中的NAME 字段有一个反斜杠,如下所示:ABC\ABC。
【问题讨论】:
-
'ABC\\ABC'- 这是文字值,句点。 Oracle 不会对它做任何事情。您需要在将其发送到 oracle 之前准备好您的值。 phyton 有[string].replace("\\", "\")。使用它。 -
@T.S. python 总是在变量中存储双反斜杠以在打印等时对其进行转义。所以
replace和编码/解码在这种情况下不起作用。