SELECT last_number
FROM all_sequences
WHERE sequence_owner = '<sequence owner>'
AND sequence_name = '<sequence_name>';
Sie können eine Vielzahl von Sequenz Metadaten aus erhalten user_sequences
, all_sequences
und dba_sequences
.
Diese Ansichten funktionieren sitzungsübergreifend.
BEARBEITEN:
Wenn sich die Sequenz in Ihrem Standardschema befindet, dann:
SELECT last_number
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
Wenn Sie alle Metadaten möchten, dann:
SELECT *
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
Ich hoffe es hilft...
EDIT2:
Ein langwieriger Weg, dies zuverlässiger zu tun, wenn Ihre Cache-Größe nicht 1 ist, wäre:
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.
Beachten Sie nur, dass andere (Sie) die Sequenz möglicherweise während dieser Zeit verwenden
ORA-08004: sequence SEQ.NEXTVAL goes below the sequences MINVALUE and cannot be instantiated
Möglicherweise möchten Sie den Cache auch NOCACHE
vor dem Zurücksetzen auf und anschließend auf den ursprünglichen Wert zurücksetzen, um sicherzustellen, dass Sie nicht viele Werte zwischengespeichert haben.