sql >> Base de Datos >  >> RDS >> Oracle

¿Hay alguna forma de obtener información sobre la sesión actual de gv$session en Oracle?

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.