В Oracle мы используем последовательности для этого:
create sequence seq_bk;
select lpad('XYZ'||seq_bk.nextval, 10, '0') from dual connect by level <= 10;
демо
Этот запрос возвращает значения 000000XYZ1
... 00000XYZ10
.Если вы запустите его снова, вы получите следующие 10 уникальных, увеличивающихся значений.