使用CONTAINS查询的Java Prepared Statement

3

我有一个搜索查询,必须使用模糊搜索来搜索表中的一列。该列上有ctxsys.context类型的索引。在使用预处理语句从表中获取数据时,搜索查询无法处理特殊字符如-、/、_等。

以下是我的代码 -

String query = "select * from parties where contains (party_name ,'%' || ? || '%')>0";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, searchName);

对于没有特殊字符的文本,该代码可以正常工作。

当我在sqlDeveloper中运行以下查询时,它可以正常运行。

select * from parties where contains(party_name,'c/o')>0;

请建议我在准备语句中做出哪些更改,以使其也适用于特殊字符。
1个回答

1

是的,我尝试过使用那个,但是不理解它如何适用于我。 - Sumit Srivastava
谢谢Rahul。我正在尝试这个解决方案,但遇到了一些问题。我会尽力让它工作的。根据建议,我们应该在查询的末尾添加转义部分。我可能漏掉了什么。 - Sumit Srivastava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接