首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >包含查询的Java准备语句

包含查询的Java准备语句
EN

Stack Overflow用户
提问于 2016-10-23 11:37:24
回答 1查看 1.3K关注 0票数 3

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

这是我的密码-

代码语言:javascript
代码运行次数:0
运行
复制
String query = "select * from parties where contains (party_name ,'%' || ? || '%')>0";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, searchName);

对于没有特殊字符的文本,代码运行良好。

当我在sqlDeveloper中运行下面的查询时,它运行得很好。

代码语言:javascript
代码运行次数:0
运行
复制
select * from parties where contains(party_name,'c/o')>0;

请建议我应该在准备好的声明中做些什么修改,以使它也适用于特殊字符。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-23 12:02:23

请参阅关于如何使用准备好的声明中的内容的问题。PreparedStatement with CONTAINS query

您必须在查询中使用转义,如果上面的didint工作如下

代码语言:javascript
代码运行次数:0
运行
复制
SELECT * FROM BIRDS WHERE SPECIES='Williamson's Sapsucker 
statement.executeQuery("SELECT * FROM BIRDS  WHERE SPECIES='Williamson/'s Sapsucker' {escape '/'}");

http://www.jguru.com/faq/view.jsp?EID=8881参考资料

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40202463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档