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

SELECT を起動していないため、executeUpdate()代わりに使用する必要があります。executeQuery()

int numberOfRowsAffected = ps.executeUpdate();

このメソッドは、データベースで実際に更新された行数を返します。

于 2013-06-19T15:37:57.270 に答える