如何在sql中转义导致“引号字符串未正确终止”的单引号?

2022-09-03 09:25:19

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

带引号的字符串未正确终止'

我做了

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

但这似乎不能完成我的工作。此外,当这些术语转换为文本时,它们是文档中的标记。有没有一个正则表达式可以克服这个问题?

确切的 SQL 查询是:

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

我使用的是Java。替换对我不起作用。


答案 1

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

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

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


答案 2