有没有办法在 Oracle 的 GV$SESSION
视图中唯一标识当前会话?
我遇到了一个问题,在 Oracle RAC 配置下,以下查询可能会返回多行:
SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND SID = Sys_Context('USERENV', 'SID');
使用V$MYSTAT
也不是一个选项,因为当前会话可能无法访问V$MYSTAT
(例如当统计信息被禁用时)。
AUDSID
或者AUDSID
加上SID
的组合进行过滤时,在Oracle RAC配置中,V$SESSION和GV$SESSION都可能返回多行结果。AUDSID
可能不是唯一的。只有SID
加上SERIAL#
的组合是唯一的,但是如何获取当前会话的SERIAL#
呢? - Volodymyr Frolovinst_id = userenv('Instance')
可能会奏效。您能否将其作为单独的答案添加?如果它有效,我会测试并标记为正确答案。 - Volodymyr Frolov