15

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

引用的字符串未正确终止'

我做了

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

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

确切的 SQL 查询是:

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

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

4

1 回答 1

38

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

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

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

于 2012-07-27T18:45:25.310 回答