SELECT last_number
FROM all_sequences
WHERE sequence_owner = '<sequence owner>'
AND sequence_name = '<sequence_name>';
Ви можете отримати різні метадані послідовності з user_sequences
, all_sequences
і dba_sequences
.
Ці погляди працюють протягом сеансів.
Редагувати:
Якщо послідовність є у вашій схемі за замовчуванням, тоді:
SELECT last_number
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
Якщо ви хочете, щоб усі метадані:
SELECT *
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
Сподіваюся, це допомагає ...
EDIT2:
Довго звичний спосіб зробити це надійніше, якщо розмір кешу не 1:
SELECT increment_by I
FROM user_sequences
WHERE sequence_name = 'SEQ';
I
-------
1
SELECT seq.nextval S
FROM dual;
S
-------
1234
-- Set the sequence to decrement by
-- the same as its original increment
ALTER SEQUENCE seq
INCREMENT BY -1;
Sequence altered.
SELECT seq.nextval S
FROM dual;
S
-------
1233
-- Reset the sequence to its original increment
ALTER SEQUENCE seq
INCREMENT BY 1;
Sequence altered.
Тільки зауважте, що якщо за цей час інші використовують послідовність - вони (або ви) можуть отримати
ORA-08004: sequence SEQ.NEXTVAL goes below the sequences MINVALUE and cannot be instantiated
Крім того, ви можете встановити кеш-пам'ять до NOCACHE
скидання, а потім повернути його до початкового значення, щоб переконатися, що ви не кешували багато значень.