我有一个搜索查询,必须使用模糊搜索来搜索表中的一列。该列上有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;
请建议我在准备语句中做出哪些更改,以使其也适用于特殊字符。