bonjour,
je souhaite savoir s'il existe un moyen de recuperer la valeur d'une sequence courante mais dans toutes les sessions (la valeur au niveau du serveur), pas celle en cours dans la session ?
le currval ne convient pas .
cordialement
bonjour,
je souhaite savoir s'il existe un moyen de recuperer la valeur d'une sequence courante mais dans toutes les sessions (la valeur au niveau du serveur), pas celle en cours dans la session ?
le currval ne convient pas .
cordialement
Oui, Non, peut être.
Mais, la question est pour quoi faire ?
je veux recuperer la valeur de la sequence quelque soit la session
Ça je l’ai déjà compris.
Mais la question demeure : à quoi ça sert, pour quoi faire. Vous avez conscience que ce que vous demandez n’est pas habituel.
Bonjour,
Le but des sequences est de fournir un numéro unique à chaque fois qu'on l’interroge.
Cordialement,
Franck.
je veux savoir si une autre session a utilisé la sequence apres mon utilisation, qui peut durer un certain temps, et jusqu' à quelle valeur .
Vous ne répondez toujours pas à la question, quelle est la finalité de votre besoin ?
pour moi c'est clair ce que je demande.
la finalité en gros, c'est pour detecter une utilisation de la sequence par d'autres sessions clientes afin de declencher des synchronisations par la suite s'il y a decalage entre ma valeur courante et celle de la sequence (global)
C'est déjà un bon début ! Mais malgré vos efforts, c'est comme les collègues, je ne vois pas non plus à quoi une telle mécanique peut bien réellement servir. Je pense que vous êtes sur une fausse piste.
Sur le plan purement technique, il existe la vue SYS.V_$SEQUENCES, qui présente les séquences ayant été appelées au moins une fois depuis le démarrage de l'instance.
Sa colonne NEXTVALUE correspond presque directement à ce que vous cherchez : c'est la prochaine valeur qui serait générée si quelqu'un faisait un NEXTVAL. Vous n'avez plus qu'à soustraire l'incrément pour connaître la dernière valeur réellement générée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 connect / as sysdba drop sequence scott.seq; create sequence scott.seq start with 2 increment by 5; select sequence_owner, sequence_name, nextvalue, highwater from v$_sequences where sequence_name='SEQ'; --> Notre séquence n'apparaît pas : elle n'a pas encore été appelée select scott.seq.nextval from dual; --> 2 select sequence_owner, sequence_name, nextvalue, highwater from v$_sequences where sequence_name='SEQ'; SEQUENCE_OWNER SEQUENCE_NAME NEXTVALUE HIGHWATER ----------------------------------- ------------------------------ ---------- ---------- SCOTT SEQ 7 102
Partager