2011-05-25 61 views
0

我遇到了在catsearch子句中綁定準備語句參數的問題。在執行中,我得到了java.sql.SQLException:無效的列索引 我嘗試了一些其他方法,通過轉義引號(包括單引號和雙引號),但仍然遇到SQL異常(無效列/缺少右括號) 欣賞我是否可以請指出正確的綁定方式 -Oracle中的Java Prepared Statement catsearch

字符串sqlForcatString = SELECT * from EVENT_TABLE其中catsearch(DATA,\'%?%TAG \',null內) stmt = conn.prepareStatement(sqlForCatString); stmt.setString(1,keyValue);

回答

1

您的參數包含在sql查詢中的帶引號的字符串中,因此它不會被sql解析器識別。你應該可以在查詢中使用字符串連接來構建這個字符串:

String sqlForcatString = "SELECT * from EVENT_TABLE where catsearch(DATA,'<query> <textquery grammar=\"context\"> %' || ? || '% within TAG</textquery></query>',null)"; 
stmt = conn.prepareStatement(sqlForCatString); 
stmt.setString(1,keyValue); 
+0

thx Jorn,字符串連接工作! – Noosphere 2011-05-27 16:49:28

相關問題