Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Gibt es eine Möglichkeit, Informationen über die aktuelle Sitzung von gv $ session in Oracle zu erhalten?

Versuchen Sie Folgendes:

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

Da Sie an der aktuellen Sitzung interessiert sind, muss sich die aktuelle Sitzung (per Definition) auf der lokalen Instanz befinden, also verwenden Sie V$SESSION statt GV$SESSION . Außerdem brauchen Sie nur AUDSID um Ihre Sitzung eindeutig zu identifizieren.

Wenn Sie einen Grund haben, wirklich müssen GV$SESSION verwenden (Ich kann mir nicht vorstellen, warum das so wäre), Sie könnten stattdessen Folgendes tun:

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

Auch ein alternativer Weg, um die SID zu erhalten der aktuellen Sitzung ist:

select sid from v$mystat where rownum=1;

Hoffe das hilft.