Частенько необходимо установить последовательность в какое-то произвольное значение.

Есть несколько вариантов такой процедуры.

Чаще всего рекомендуют прокрутить в цикле последовательность до нужного значения. Если нужное значение меньше, чем текущее, то нужно перевалить через максимальное значение, получаем 0 и доходим до нужного значения.
Но это хорошо, если разница небольшая, иначе это может занять ощутимое время.

Второй вариант заключается в установке шага последовательности равной разнице необходимого значения и текущего, выполнение этого шага, восстановление исходного шага.

SQL>ALTER SEQUENCE clients_seq INCREMENT BY 1300001;
SQL>SELECT clients_seq.NEXTVAL FROM dual;
SQL>ALTER SEQUENCE clients_seq INCREMENT BY 1;

Ну и самый простой вариант, но требующий прав DBA - для любителей-экстремалов:

UPDATE sys.seq$ SET highwater=66 
WHERE sys.seq$.obj# = (SELECT o.obj# FROM sys.obj$ o, sys.USER$ u
                        WHERE o.name='ID_CUR#SEQ' AND u.name='UBC'
                          AND u.USER#=o.OWNER#);

То есть прописываем в лоб в системную таблицу :)
Что бы не зависить от прав DBA, можно вставить этот SQL в процедуру с соответствующими параметрами от пользователя с правами DBA, и дать на её исполнение всем права.
!!! Предупреждаю! После таких действий последовательность может себя вести неадекватно :)

Во всех вариантах нужно пропустить в конце COMMIT, что бы остальные увидели результат изменения.

Хостинг от uCoz