Опитайте това:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Тъй като се интересувате от текущата сесия, текущата сесия трябва да е на локалния екземпляр (по дефиниция), така че използвайте V$SESSION
вместо GV$SESSION
. Освен това всичко, от което се нуждаете, е AUDSID
за уникално идентифициране на вашата сесия.
Ако имате някаква причина, наистина трябва да използвате GV$SESSION
(не мога да си представя защо би било така), можете да направите това вместо това:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Също така, алтернативен начин за получаване на SID
на текущата сесия е:
select sid from v$mystat where rownum=1;
Надявам се, че това помага.