Warum bekomme ich java.sql.SQLException: ORA-01002: fetch out of sequence Ausnahme
Ich arbeite mit einer einfachen update-Anweisung in meinem java-code einer oracle-Datenbank (JDBC call) und es aktualisiert, wenn Datensatz gefunden, aber wenn Datensatz nicht existiert, erhalte ich " java.sql.SQLException: ORA-01002: fetch out of sequence" Ausnahme. Hier ist mein code, warum Ausnahme? Wo soll ich es verbessern. Code-Beispiel wäre sehr hilfreich.
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;
}
- Ich bin kein Java-dev, aber von dem was ich weiß von anderen Sprachen, ich denke, die rs.next() das problem sein kann, wie eine update-Abfrage, wahrscheinlich kein Ergebnis zurück gesetzt, sodass die nächste() schlägt fehl...
- Haben Sie noch nie codiert eine SQL-insertion in Java vor?
- Ich bin nur zu lernen, sorry, wenn dies eine dumme Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden
executeUpdate()
stattexecuteQuery()
da bist du NICHT brennen ein WÄHLEN Sie.Diese Methode gibt die Anzahl der Zeilen, die tatsächlich in der Datenbank aktualisiert.