Oracle
 sql >> Datenbank >  >> RDS >> Oracle

java.sql.SQLException:ORA-01002:Abruf außerhalb der Reihenfolge

SELCT ... FOR UPDATE macht nur im Zusammenhang mit einer verwalteten Transaktion Sinn, da die ausgewählten Zeilen gesperrt werden müssen.

Standardmäßig verwendet JDBC keine verwaltete Transaktion, sondern eine implizit erstellte Transaktion, die festgeschrieben wird, sobald die Abfrage ausgeführt wird. Dadurch wird die Semantik von SELECT ... FOR UPDATE unterbrochen , und der JDBC-Treiber beschwert sich.

Um eine verwaltete Transaktion zu verwenden, fügen Sie

hinzu
connection.setAutoCommit(false); 

bevor Sie die Abfrage ausführen. Führen Sie anschließend connection.commit() aus .