SELECT last_number
FROM all_sequences
WHERE sequence_owner = '<sequence owner>'
AND sequence_name = '<sequence_name>';
Vous pouvez obtenir une variété de métadonnées de séquence à partir de user_sequences
, all_sequences
et dba_sequences
.
Ces vues fonctionnent d'une session à l'autre.
MODIF :
Si la séquence est dans votre schéma par défaut alors :
SELECT last_number
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
Si vous voulez toutes les métadonnées, alors :
SELECT *
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
J'espère que ça aide...
EDIT2 :
Une façon longue et fastidieuse de le faire de manière plus fiable si la taille de votre cache n'est pas de 1 serait :
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.
Méfiez-vous simplement que si d'autres utilisent la séquence pendant ce temps - ils (ou vous) peuvent obtenir
ORA-08004: sequence SEQ.NEXTVAL goes below the sequences MINVALUE and cannot be instantiated
En outre, vous pouvez définir le cache sur NOCACHE
avant la réinitialisation, puis revenir à sa valeur d'origine par la suite pour vous assurer que vous n'avez pas mis en cache beaucoup de valeurs.