我在Java Class中使用了这段简单的代码。
我要查询数据库以查找文本匹配。
我认为这个问题出现在第二个问题上?'但我无法理解为什么。
int userID = this.userID;
String filter = this.filter;
PreparedStatement stmt;
ResultSet rset1;
String query1
= selectMediaList
+ "FROM "
+ schema + ".MEDIA M"
+ " WHERE M.USER_ID = ?"
+ " AND LIKE REGEXP_LIKE ( M.TITLE , ? ) ";
stmt = connection.prepareStatement ( query1, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
stmt.setInt ( 1, userID );
stmt.setString ( 2, filter );
rset1 = stmt.executeQuery ();
但我总是得到这个SQL异常: ORA-00936:缺少表达
有什么想法吗?
答案 0 :(得分:4)
更改:
+ " AND LIKE REGEXP_LIKE ( M.TITLE , ? ) ";
要:
+ " AND REGEXP_LIKE ( M.TITLE , ? ) ";
如果您使用like
,则无需考虑REGEXP_LIKE
。