There is no "alter sequence reset" but you can, by playing with the increment
by, reset it. Consider:
ops$tkyte@DEV816> create sequence seq;
Sequence created.
ops$tkyte@DEV816> select seq.nextval from emp;
NEXTVAL
----------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
14 rows selected.
ops$tkyte@DEV816> column S new_val inc;
ops$tkyte@DEV816> select seq.nextval S from dual;
S
----------
15
ops$tkyte@DEV816> alter sequence seq increment by -&inc minvalue 0;
old 1: alter sequence seq increment by -&inc minvalue 0
new 1: alter sequence seq increment by - 15 minvalue 0
Sequence altered.
ops$tkyte@DEV816> select seq.nextval S from dual;
S
----------
0
ops$tkyte@DEV816> alter sequence seq increment by 1;
Sequence altered.
ops$tkyte@DEV816>
ops$tkyte@DEV816> select seq.nextval from dual;
NEXTVAL
----------
1
So, by finding out the current value of the sequence and altering the
increment by to be negative that number and selecting the sequence once -- we
can reset it. Just beware that if others are using the sequence during this
time - they (or you) may get
ORA-08004: sequence SEQ.NEXTVAL goes below MINVALUE and cannot be instantiated
until you set the sequence increment back to +1.
This would be preferred to dropping and recreating the sequence which would
invalidate any dependent objects (such as triggers/stored procedures and so on)