为什么我得到" java.sql.SQLException:列索引无效"?

时间:2016-11-23 11:09:37

标签: oracle select jdbc where

我尝试将号码传递给PrepareStmt,但是会收到此错误。我无法理解我的问题。

查询:

private static final String SQL_FIND_ALL_CALENDARS = "SELECT * FROM calendar WHERE idCall > '?';";

功能:

private List<Calendar> findAll(Connection con) throws SQLException {
        List<Calendar> calendar = new ArrayList<Calendar>();
        PreparedStatement prsmt = null;
        ResultSet rs = null;
        try {
            prsmt = con.prepareStatement(SQL_FIND_ALL_CALENDARS);
            prsmt.setInt(1, TestOracleJDBC.idCall);
            rs = prsmt.executeQuery();
            while (rs.next()) {
                Calendar calendar2 = extractCalendar(rs);
                calendar.add(calendar2);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            rs.close();
            prsmt.close();
        }
        return calendar;
    }

在其他课程中我的参数:

public static int idCall = 1;

1 个答案:

答案 0 :(得分:0)

单引号(')表示SQL中的字符串文字。使用绑定变量时,不应该用引号括住? - 这会将其更改为带有问号的字符串文字,而不是绑定值的占位符。

只需删除它就可以了:

private static final String SQL_FIND_ALL_CALENDARS =
    "SELECT * FROM calendar WHERE idCall > ?";
    // Here -------------------------------^