簡體   English   中英

帶有CONTAINS查詢的Java Prepared Statement

[英]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 '/'}");

來自http://www.jguru.com/faq/view.jsp?EID=8881的參考資料

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM