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

Spring Batch:no se pudo incrementar la identidad; la excepción anidada es com.microsoft.sqlserver.jdbc.SQLServerException:¿Nombre de objeto no válido 'BATCH_JOB_SEQ'?

Probablemente el error esté relacionado con la migración de Oracle a Azure SQL Server.

Como puede ver en el código fuente de la biblioteca bajo el capó, Spring Batch usa diferentes estrategias cuando generación de ID para trabajos, ejecuciones de trabajos y ejecuciones de pasos .

En el caso de Oracle, usan secuencias ; con SQL Server, implementaron la generación de id usando tablas con una columna de identidad .

El proceso de migración también reprodujo las diferentes secuencias de Oracle requeridas por Spring Batch y es muy probable que esté causando el problema cuando la estrategia de generación de id de SQL Server antes mencionada intenta obtener el siguiente valor.

Por favor, suelte las secuencias migradas y cree el tres tablas requerido para SQL Server con los valores apropiados:

CREATE TABLE BATCH_STEP_EXECUTION_SEQ (
  ID BIGINT IDENTITY(<last analogous Oracle sequence value>, 1)
);

CREATE TABLE BATCH_JOB_EXECUTION_SEQ (
  ID BIGINT IDENTITY(<last analogous Oracle sequence value>, 1)
);

CREATE TABLE BATCH_JOB_SEQ (
  ID BIGINT IDENTITY(<last analogous Oracle sequence value>, 1)
);