Java 如何在sql中转义导致';带引号的字符串未正确终止';?

Java 如何在sql中转义导致';带引号的字符串未正确终止';?,java,sql,regex,oracle,Java,Sql,Regex,Oracle,我试图从数据库(>10K)中读取术语,并在另一个查询中使用该术语。我在Oracle中遇到以下错误: 带引号的字符串未正确终止' 是的 但这似乎不适合我。此外,这些术语是文档转换为文本时的标记。有没有一个正则表达式可以克服这个问题 确切的SQL查询是: String sql = "Select * from indexDB where (DocID=" + d.getDocId() + "and Term='" + term + "')"; 我正在使用Java。替换项对我不起作用。你可以重复一个

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

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

是的

但这似乎不适合我。此外,这些术语是文档转换为文本时的标记。有没有一个正则表达式可以克服这个问题

确切的SQL查询是:

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

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

你可以重复一个引号:

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

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

您需要阅读“另请参阅”,以了解如何在您使用的任何语言中使用参数化查询的详细信息。这将保护您免受Oded所提到的SQL注入的影响。是的,通过它,参数化查询完成了!!非常感谢!Oracle中更多的特殊字符,不仅仅是字符“?
term.replaceAll("'","''");