SELECT last_number
FROM all_sequences
WHERE sequence_owner = '<sequence owner>'
AND sequence_name = '<sequence_name>';
U kunt een verscheidenheid aan sequentiemetadata krijgen van user_sequences
, all_sequences
en dba_sequences
.
Deze weergaven werken in verschillende sessies.
BEWERKEN:
Als de reeks in uw standaardschema staat, dan:
SELECT last_number
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
Als je alle metadata wilt, dan:
SELECT *
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
Ik hoop dat het helpt...
EDIT2:
Een omslachtige manier om het betrouwbaarder te doen als uw cachegrootte niet 1 is, zou zijn:
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.
Pas op dat als anderen de reeks gedurende deze tijd gebruiken, zij (of jij)
. kunnen krijgenORA-08004: sequence SEQ.NEXTVAL goes below the sequences MINVALUE and cannot be instantiated
U kunt ook de cache instellen op NOCACHE
voorafgaand aan het resetten en daarna terug naar de oorspronkelijke waarde om er zeker van te zijn dat je niet veel waarden in de cache hebt opgeslagen.