java - 如何在导致'引用字符串未正确终止'的sql中转义单引号?

标签 java sql regex oracle

<分区>

我正在尝试从数据库 (>10K) 中读取术语,并且我在另一个查询中使用了该术语。我在 Oracle 中收到以下错误:

quoted string not properly terminated'

我做了

term.replaceAll("'", "\\'");

但这似乎对我不起作用。此外,这些术语在转换为文本时是来自文档的标记。有没有正则表达式可以解决这个问题?

确切的 SQL 查询是:

String sql = "Select * from indexDB where (DocID=" + d.getDocId() + "and Term='" + term + "')";

我正在使用 Java。替代品对我不起作用。

最佳答案

您可以通过重复来转义单引号:

term.replaceAll("'","''");

更好的选择是参数化查询。例如,我们必须知道您的客户端语言。

关于java - 如何在导致'引用字符串未正确终止'的sql中转义单引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11693846/

相关文章:

regex - 从 `^` 中删除 `s/^/1/;` 会导致我的代码失败。为什么?

java - 在以 0 结尾的输入循环中获取偶数和奇数整数

java - 如何处理 example.com/request 类型的任何请求?

java - 在小程序中制作三角形多边形

sql - 一条记录中的多行

regex - Powershell 正则表达式混淆

java - 在 Android 中以编程方式更改 Spinner

sql - ORACLE-CASE 需要 INTO?

带有小数列的 MySQL ROUND 在 CONCAT 中无法按预期工作

regex - 正则表达式捕获部署任务