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.