Hãy thử điều này:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');
Vì bạn quan tâm đến phiên hiện tại, phiên hiện tại phải nằm trên phiên bản cục bộ (theo định nghĩa), vì vậy hãy sử dụng V$SESSION
thay vì GV$SESSION
. Ngoài ra, tất cả những gì bạn cần là AUDSID
để xác định duy nhất phiên của bạn.
Nếu bạn có một số lý do, bạn thực sự cần sử dụng GV$SESSION
(không thể tưởng tượng tại sao lại như vậy), bạn có thể làm điều này thay thế:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');
Ngoài ra, một cách thay thế để lấy SID
của phiên hiện tại là:
select sid from v$mystat where rownum=1;
Hy vọng điều đó sẽ hữu ích.