Spróbuj tego:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Ponieważ interesuje Cię bieżąca sesja, bieżąca sesja musi znajdować się na lokalnej instancji (z definicji), więc użyj V$SESSION
zamiast GV$SESSION
. Wszystko czego potrzebujesz to AUDSID
aby jednoznacznie zidentyfikować Twoją sesję.
Jeśli masz jakiś powód, naprawdę musisz użyć GV$SESSION
(nie potrafię sobie wyobrazić, dlaczego tak by było), możesz to zrobić:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Również alternatywny sposób na uzyskanie SID
bieżącej sesji to:
select sid from v$mystat where rownum=1;
Mam nadzieję, że to pomoże.