Versuchen Sie Folgendes:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Da Sie an der aktuellen Sitzung interessiert sind, muss sich die aktuelle Sitzung (per Definition) auf der lokalen Instanz befinden, also verwenden Sie V$SESSION
statt GV$SESSION
. Außerdem brauchen Sie nur AUDSID
um Ihre Sitzung eindeutig zu identifizieren.
Wenn Sie einen Grund haben, wirklich müssen GV$SESSION
verwenden (Ich kann mir nicht vorstellen, warum das so wäre), Sie könnten stattdessen Folgendes tun:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Auch ein alternativer Weg, um die SID
zu erhalten der aktuellen Sitzung ist:
select sid from v$mystat where rownum=1;
Hoffe das hilft.