Est-il possible d'obtenir des informations sur la session en cours de gv$session dans oracle?
Est-il un moyen d'identifier de manière unique une session dans GV$SESSION
vue dans Oracle?
J'ai été confronté avec le problème que la requête suivante peut retourner plus d'une ligne dans le cas d'Oracle RAC configuration:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND SID = Sys_Context('USERENV', 'SID');
À l'aide de V$MYSTAT
n'est pas une option, parce que V$MYSTAT
peuvent ne pas être accessibles pour la session en cours (par exemple lors de la statistique est désactivé).
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Depuis que vous êtes intéressé dans la session en cours, la session en cours doit être sur l'instance locale (par définition), donc utilisez
V$SESSION
au lieu deGV$SESSION
. Aussi, tous vous avez besoin estAUDSID
pour identifier de manière unique votre session.Si vous avez une raison quelconque, vous vraiment besoin d'utiliser
GV$SESSION
(ne peut pas imaginer pourquoi ce serait), vous pourriez faire ceci à la place:Aussi, une autre façon d'obtenir le
SID
de la session en cours est:Espère que ça aide.
AUDSID
plusSID
n'est pas unique dans le cas d'Oracle RAC (seule une combinaison deSID
etSERIAL#
est unique) etV$MYSTAT
est pas disponible parce que la statistique est éteint.AUDSID
et même par la combinaison deAUDSID
plusSID
.AUDSID
peut ne pas être unique. Seule une combinaison deSID
plusSERIAL#
est unique, mais comment obtenirSERIAL#
de la session en cours?inst_id = userenv('Instance')
peuvent faire l'affaire. Pourriez-vous s'il vous plaît ajouter comme réponse? Je vais le tester et de les marquer comme étant correct si il fonctionne.Rejoindre
gv$session
etv$mystat
🙂Utilisation
V$SESSION
au lieu deGV$SESSION