0

我在我的 java 代码中对 oracle 数据库(JDBC 调用)运行一个简单的更新语句,它会在找到记录时更新,但当记录不存在时,我得到“ java.sql.SQLException: ORA-01002: fetch out of sequence “ 例外。这是我的代码,为什么异常?我应该在哪里改进它。代码示例将非常有帮助。

public String preformUpdate(String someValue){
    ResultSet rs;
    String result = "Update failed record not found.";
    StringBuffer sb = new StringBuffer();

    try{
        conn = DBConnect.getInstance().dbOracleConnect();   

        StringBuffer sbUpdate = new StringBuffer();
        sbUpdate = new StringBuffer("UPDATE sometable ");
        sbUpdate.append("SET value1 = ? ");
        sbUpdate.append("WHERE value2 = ?" );

        ps = conn.prepareStatement(sbUpdate.toString());  
        ps.setString(1, "0");
        ps.setString(2, someValue);

        rs = ps.executeQuery();

        if (rs.next()){
            result = "Value updated";               
        }

    }
    catch (Exception e){
        e.printStackTrace();
    }
    finally{
        JDBCHelper.close(cs);   
        JDBCHelper.close(conn);         
    }

    return result;
}
4

1 回答 1

7

您应该使用executeUpdate()而不是executeQuery()因为您没有触发 SELECT。

int numberOfRowsAffected = ps.executeUpdate();

此方法返回数据库中实际更新的行数。

于 2013-06-19T15:37:57.270 回答