Oracle-Sequenzen sind nicht dazu gedacht, zusammenhängende (um eins inkrementierte) IDs in der Zieltabelle zu erzeugen. Das liegt daran, dass sie sehr schnell sind und Multi-Threading-Zugriff ermöglichen, was bedeutet, dass Sequenz-IDs unter der Haube in verschiedenen Transaktionen zwischengespeichert werden.
Möglicherweise können Sie das Problem beheben, indem Sie die Sequenz mit NOCACHE
deklarieren , aber es gibt immer noch keine Garantie dafür, dass IDs nicht übersprungen werden, wenn eine Transaktion aus irgendeinem Grund rückgängig gemacht wird.
Wie immer erklärt Tom Kyte das ausführlich.