[英]Java Prepared Statement with CONTAINS query
我有一個搜索查詢,必須使用包含搜索搜索表中的列。 列上有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;
請建議我在准備好的聲明中做出哪些更改,以使其適用於特殊字符。
請參閱此問題,了解如何在准備好的聲明中使用包含。 具有CONTAINS查詢的PreparedStatement
如果上面的確如此工作,你必須在查詢中使用轉義
SELECT * FROM BIRDS WHERE SPECIES='Williamson's Sapsucker
statement.executeQuery("SELECT * FROM BIRDS WHERE SPECIES='Williamson/'s Sapsucker' {escape '/'}");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.