Так работают последовательности.Каждый раз, когда вы получаете доступ к кэшированной последовательности, сеанс будет получать n номеров из последовательности, и их можно использовать в любое время, пока сессия не будет закрыта.Нет способа контролировать порядок вставки.
Это относится к любой системе, которая подключается к нескольким сеансам (пул соединений, кластерная среда, несколько толстых клиентов, подключенных к одной базе данных).
Давайтепредположим следующую последовательность:
CREATE SEQUENCE test_seq
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
Сессия 1 вызывает test_seq.nextval и получает номера от 1 до 10
Сессия 2 вызывает test.seq.nextval и получает номера от 11 до 20
Сессия 1 вставляет три записи
Сессия 2 вставляет две записи
Сессия 1 вставляет одну запись
Результирующий порядок вставки будет
1
2
3
11
12
4
Есливам нужен идентификатор записи, соответствующий порядку вставки, который вы можете использовать в столбце идентификаторов, начиная с Oracle 12c. В общем случае лучше не назначать никакого особого значения столбцу первичного ключа, и лучше отслеживать порядок вставки через столбец отметки времени.