如何理解嵌入在 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 查询中的转义的主要内容,如果未能解决你的问题,请参考以下文章

java script小结

JS总结

如何格式化美元? [复制]

如何在 HTML 文档中安全地嵌入带有 </script> 的 JSON?

将Sonarqube从嵌入式H2切换到支持的数据库

    JAVA SCRIPT SLIDESHOW 嵌入式开发的 VOID 运行链接开发