ORA-00933:SQL命令未在PreparedStatement中正确结束

时间:2016-02-04 20:21:03

标签: java sql oracle

我有一个正常运行的oracle SQL语句:

select user_id,email from app_users where user_id in (select user_id from app_users_groups where group_id = ?);

我运行这个并且得到了我期望的结果,但是我试图通过以下方式在Java中运行它:

    try (Connection conn = dataSource.getConnection()) {
        try (PreparedStatement ps = conn.prepareStatement("select user_id,email from app_users where user_id in (select user_id from app_users_groups where group_id = ?);")) {
            ps.setInt(1, groupId);
            try (ResultSet rs = ps.executeQuery()) {
                while(rs.next()) {
                }
            }
         }
     } catch (SQLException e) { }

但是我在使用SQLException ORA-00933的ps.executeQuery失败:SQL命令没有正确结束。

我不太确定问题是什么,虽然我确信这很简单但我不知道。

由于

1 个答案:

答案 0 :(得分:0)

正如Dmitry.P和a_horse_with_no_name所说。

我只需要按照建议删除分号 - 也是合格的列名。

conn.prepareStatement("select u.user_id,u.email from app_users u where u.user_id in (select g.user_id from app_users_groups_xref g where g.group_id = ?)")

对我来说简单的脑力,谢谢。