sql >> Databáze >  >> RDS >> Oracle

Spring Batch:Nelze zvýšit identitu; vnořená výjimka je com.microsoft.sqlserver.jdbc.SQLServerException:Neplatný název objektu 'BATCH_JOB_SEQ'?

Chyba pravděpodobně souvisí s migrací z Oracle na Azure SQL Server.

Jak můžete vidět v zdrojový kód knihovny under the hood Spring Batch používá různé strategie, když generování ID pro úlohy, provádění úloh a provádění kroků .

V případě Oracle používají sekvence ; s SQL Server implementovali generování id pomocí tabulky se sloupcem identity .

Proces migrace také replikoval různé sekvence Oracle vyžadované Spring Batch a velmi pravděpodobně způsobuje problém, když se výše uvedená strategie generování ID SQL Serveru pokouší získat další hodnotu.

Zahoďte migrované sekvence a vytvořte tři tabulky požadované pro SQL Server s příslušnými hodnotami:

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



  1. Proč jsou ovlivněny 2 řádky v mém „INSERT...ON DUPLICATE KEY UPDATE“?

  2. SQL Server ANSI_NULLS Vysvětleno

  3. Při používání uložené procedury v MySQL dochází ke dvěma problémům

  4. CodeIgniter:Jak provést výběrový (rozlišující název pole) MySQL dotaz