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

Aas*_*ima 15 java regex sql oracle

我试图从数据库中读取术语(> 10K),我在另一个查询中使用该术语.我在Oracle中遇到以下错误:

引用字符串未正确终止'

我做到了

term.replaceAll("'", "\\'");
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有完成我的工作.此外,这些术语是文档转换为文本时的标记.是否有正则表达式可以解决这个问题?

确切的SQL查询是:

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

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

And*_*mar 36

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

term.replaceAll("'","''");
Run Code Online (Sandbox Code Playgroud)

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