Zkuste toto:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Protože vás zajímá aktuální relace, aktuální relace musí být v místní instanci (podle definice), takže použijte V$SESSION
místo GV$SESSION
. Vše, co potřebujete, je také AUDSID
k jedinečné identifikaci vaší relace.
Pokud máte nějaký důvod, opravdu je třeba použít GV$SESSION
(neumím si představit, proč by to bylo), můžete místo toho udělat toto:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Také alternativní způsob, jak získat SID
aktuální relace je:
select sid from v$mystat where rownum=1;
Doufám, že to pomůže.