Prueba esto:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Como está interesado en la sesión actual, la sesión actual debe estar en la instancia local (por definición), así que use V$SESSION
en lugar de GV$SESSION
. Además, todo lo que necesita es AUDSID
para identificar de forma única su sesión.
Si tienes alguna razón, realmente necesita usar GV$SESSION
(no puedo imaginar por qué sería eso), podría hacer esto en su lugar:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Además, una forma alternativa de obtener el SID
de la sesión actual es:
select sid from v$mystat where rownum=1;
Espero que ayude.