Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Spring Batch:não foi possível incrementar a identidade; a exceção aninhada é com.microsoft.sqlserver.jdbc.SQLServerException:nome de objeto inválido 'BATCH_JOB_SEQ'?


Provavelmente o erro está relacionado à migração do Oracle para o Azure SQL Server.

Como você pode ver no código-fonte da biblioteca sob o capô Spring Batch usa estratégias diferentes quando gerando os IDs para jobs, execuções de jobs e execuções de etapas .

No caso da Oracle, eles usam sequências ; com o SQL Server, eles implementaram a geração de id usando tabelas com uma coluna de identidade .

O processo de migração também replicou as diferentes sequências Oracle exigidas pelo Spring Batch e muito provavelmente está causando o problema quando a estratégia de geração de ID do SQL Server mencionada acima tenta obter o próximo valor.

Por favor, elimine as sequências migradas e crie o três tabelas necessário para o SQL Server com os valores apropriados:
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)
);