java,oracle - 编写语句ORA-00936

时间:2015-01-30 16:31:32

标签: java oracle prepared-statement

我在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:缺少表达

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

更改:

 + " AND LIKE REGEXP_LIKE ( M.TITLE , ? ) ";

要:

+ " AND REGEXP_LIKE ( M.TITLE , ? ) ";

如果您使用like,则无需考虑REGEXP_LIKE