Coba ini:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Karena Anda tertarik dengan sesi saat ini, sesi saat ini harus pada instance lokal (menurut definisi), jadi gunakan V$SESSION
bukannya GV$SESSION
. Juga, yang Anda butuhkan hanyalah AUDSID
untuk mengidentifikasi sesi Anda secara unik.
Jika Anda punya alasan, Anda benar-benar perlu menggunakan GV$SESSION
(tidak dapat membayangkan mengapa demikian), Anda dapat melakukan ini sebagai gantinya:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Juga, cara alternatif untuk mendapatkan SID
sesi saat ini adalah:
select sid from v$mystat where rownum=1;
Semoga membantu.