Existe-t-il une instruction SQL pour récupérer la valeur d'une séquence sans l'incrémenter ?
Merci.
ÉDITION ET CONCLUSION
Comme indiqué par Justin Cave Il n'est pas utile d'essayer de "sauvegarder" le numéro de séquence de sorte que
select a_seq.nextval from dual;
est suffisant pour vérifier une valeur de séquence.
Je garde toujours la réponse d'Ollie comme la bonne car elle répondait à la question initiale. Mais interrogez-vous sur la nécessité de ne pas modifier la séquence si vous voulez un jour le faire.
7 votes
Pourquoi ? Quel est le problème que vous essayez de résoudre ? Si vous utilisez correctement les séquences, vous ne devriez jamais vous soucier des valeurs de séquence qui ont été attribuées à d'autres sessions ou des valeurs qui pourraient être attribuées à des sessions ultérieures.
4 votes
Il s'agit d'une vérification après la migration des données pour s'assurer que la séquence a été mise à jour correctement en fonction des données migrées.
5 votes
Alors quel est l'inconvénient d'obtenir simplement la
nextval
de la séquence à tester alors ? Vous ne supposez pas que les séquences seront exemptes de trous, n'est-ce pas ? Donc "gaspiller" une valeur de séquence ne devrait pas être un problème.0 votes
Je suppose que vous avez raison, je ne voulais pas changer l'état de la base de données pour cette vérification mais pour être honnête je ne sais pas pourquoi. merci pour votre perspicacité. néanmoins j'ai appris votre truc sur la séquence, merci à tous !
0 votes
En supposant que vous puissiez obtenir de manière fiable la valeur d'une séquence, quel est votre oracle par rapport auquel vous vérifiez que la séquence a été mise à jour correctement ?
0 votes
Juste à titre d'information, si vous cherchez à vous assurer que vous ne provoquez PAS réellement un +1 sur la séquence, vous êtes plus sûr de faire le select on last_number from user_sequences en supposant que vous savez également qu'il s'agit d'une séquence utilisateur.
1 votes
@JustinCave, j'ai un système sur lequel je fais une migration de données, et je n'ai aucune idée si gap-free est nécessaire ou non. Le fait d'avoir le moins d'effets secondaires possible m'évite, ainsi qu'à d'autres personnes à l'avenir, de courir après une fausse piste pour résoudre d'autres problèmes.