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

Spring Batch:impossibile incrementare l'identità; l'eccezione nidificata è com.microsoft.sqlserver.jdbc.SQLServerException:nome oggetto 'BATCH_JOB_SEQ' non valido?

Probabilmente l'errore è legato alla migrazione da Oracle ad Azure SQL Server.

Come puoi vedere in codice sorgente della libreria sotto il cofano Spring Batch utilizza strategie diverse quando generazione degli ID per lavori, esecuzioni di lavori ed esecuzioni di passaggi .

Nel caso Oracle, usano sequenze ; con SQL Server, hanno implementato la generazione di ID utilizzando tabelle con una colonna di identità .

Il processo di migrazione ha anche replicato le diverse sequenze Oracle richieste da Spring Batch e molto probabilmente sta causando il problema quando la suddetta strategia di generazione dell'ID di SQL Server tenta di ottenere il valore successivo.

Per favore, elimina le sequenze migrate e crea il tre tabelle richiesto per SQL Server con i valori appropriati:

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)
);