Oracle
 sql >> Database >  >> RDS >> Oracle

java.sql.SQLException:ORA-01002:recupero dalla sequenza

SELCT ... FOR UPDATE ha senso solo nel contesto di una transazione gestita, poiché richiede l'eliminazione dei blocchi sulle righe selezionate.

Per impostazione predefinita, JDBC non utilizza una transazione gestita, ne utilizza una creata implicitamente che esegue il commit non appena viene eseguita la query. Questo interromperà la semantica di SELECT ... FOR UPDATE e il driver JDBC si lamenta.

Per utilizzare una transazione gestita, aggiungi

connection.setAutoCommit(false); 

prima di eseguire la query. Successivamente, esegui connection.commit() .