Oracle
 sql >> Base de données >  >> RDS >> Oracle

Existe-t-il un moyen d'obtenir des informations sur la session en cours à partir de gv$session dans Oracle ?

Essayez ceci :

SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');

Puisque vous êtes intéressé par la session en cours, la session en cours doit être sur l'instance locale (par définition), utilisez donc V$SESSION au lieu de GV$SESSION . De plus, tout ce dont vous avez besoin est AUDSID pour identifier de manière unique votre session.

Si vous avez une raison, vous vraiment besoin d'utiliser GV$SESSION (je ne peux pas imaginer pourquoi), vous pourriez faire ceci à la place :

SELECT SID, SERIAL#
    FROM GV$SESSION
    WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
      AND INST_ID = USERENV('Instance');

Aussi, une autre façon d'obtenir le SID de la session en cours est :

select sid from v$mystat where rownum=1;

J'espère que ça aide.