sql >> Base de Datos >  >> RDS >> Oracle

java.sql.SQLException:ORA-01002:recuperar fuera de secuencia

SELCT ... FOR UPDATE solo tiene sentido en el contexto de una transacción administrada, ya que requiere que se eliminen los bloqueos en las filas seleccionadas.

De manera predeterminada, JDBC no usa una transacción administrada, usa una creada implícitamente que se confirma tan pronto como se ejecuta la consulta. Esto romperá la semántica de SELECT ... FOR UPDATE y el controlador JDBC se queja.

Para usar una transacción administrada, agregue

connection.setAutoCommit(false); 

antes de ejecutar la consulta. Luego, ejecute connection.commit() .