Из серии «никогда такого не было, и вот опять». Данная ошибка по сути является багом и её не должно быть. Первые упоминания о исправлении данной ошибки датируются версией 7.3.3(да, да, очень старая) и заканчиваются на отметке версии 10.1.0.2. Но как бы не так, данная ошибка воспроизводится(не всегда, но достаточно часто) в 19.3 и 19.19. Стоит отметить, что ошибка нашлась при синтетических тестах.
Для воспроизведения ошибки, нужно:
create table t1(
id varchar2(4000));
alter table t1 add constraint idpk primary key(id);
create sequence t1seq cache 5000;
Сам тест:
Запустить 5-10 конкурентных сессий, без использования PL/SQL, используя только sql:
next_val_seq_id_bind=t1seq.nextval||rpad(‘X’,3980,’R’)
insert into t1 values(:next_val_seq_id_bind);
commit;
delete from t1 where t1.id= :next_val_seq_id_bind;
commit;
Сам тест, является неким граничным/частным случаем, когда на один блок, приходится одна строка.
SR я завёл.