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>';
Надявам се да помогне...
РЕДАКТИРАНЕ 2:
Дълъг начин да го направите по-надеждно, ако размерът на кеша ви не е 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
преди нулирането и след това обратно към първоначалната стойност след това, за да сте сигурни, че не сте кеширали много стойности.