Probeer dit:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Aangezien je geïnteresseerd bent in de huidige sessie, moet de huidige sessie op de lokale instantie zijn (per definitie), dus gebruik V$SESSION
in plaats van GV$SESSION
. Ook is alles wat je nodig hebt AUDSID
om uw sessie uniek te identificeren.
Als je een reden hebt waarom je echt moet GV$SESSION
. gebruiken (kan me niet voorstellen waarom dat zou zijn), je zou dit in plaats daarvan kunnen doen:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Ook een alternatieve manier om de SID
. te krijgen van de huidige sessie is:
select sid from v$mystat where rownum=1;
Ik hoop dat dat helpt.