如何理解嵌入在 Java Script 中的 SQL 查询中的转义
Posted
技术标签:
【中文标题】如何理解嵌入在 Java Script 中的 SQL 查询中的转义【英文标题】:How to understand escaping in this SQL query embedded in Java Script 【发布时间】:2014-10-27 22:09:16 【问题描述】:var queryString="select replace(B.entity, '''','\\\''') from B"
我假设下一行将在 Oracle 数据源中触发此查询。
我认为它说在原始数据响应中用反斜杠撇号替换任何撇号字符。
是吗?
但我仍在试图理解为什么会这样。第二个参数只是转义将两个撇号放在一起作为转义撇号的 Oracle 方式。但是第三个参数呢?为什么需要三个反斜杠?为什么不是'\\'''
【问题讨论】:
这不是 Oracle PL/SQL 相关的,而是普通的 SQL。已编辑。 【参考方案1】:它将用三个反斜杠替换一个单引号,然后是一个引号。
为了检查这个我做了
select replace('''blah''', '''','\\\''') from dual;
这会返回
\\\'废话\\\'
【讨论】:
你的例子中 B.entity 的价值是什么? b.entity 只是表格中的一个字段,因此我将其替换为文本 '''blah'''。以上是关于如何理解嵌入在 Java Script 中的 SQL 查询中的转义的主要内容,如果未能解决你的问题,请参考以下文章