为什么我得到java.sql.SQLException:ORA-01002:fetch out of sequence exception

JS1*_*S11 0 java sql oracle

我在我的java代码中运行一个简单的更新语句到一个oracle数据库(JDBC调用),它在找到记录时更新但是当记录不存在时我得到"java.sql.SQLException:ORA-01002:取消序列"例外.这是我的代码,为什么例外?我应该在哪里改进它.代码示例非常有用.

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;
}
Run Code Online (Sandbox Code Playgroud)

Rav*_*yal 7

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

int numberOfRowsAffected = ps.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

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