Prova detta:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Eftersom du är intresserad av aktuell session måste den aktuella sessionen vara på den lokala instansen (per definition), så använd V$SESSION
istället för GV$SESSION
. Allt du behöver är också AUDSID
för att unikt identifiera din session.
Om du har någon anledning verkligen måste använda GV$SESSION
(kan inte föreställa mig varför det skulle vara det), du kan göra så här istället:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Också ett alternativt sätt att få SID
för den aktuella sessionen är:
select sid from v$mystat where rownum=1;
Hoppas det hjälper.