gpt4 book ai didi

oracle - 有没有办法从oracle中的gv$session获取有关当前 session 的信息?

转载 作者:行者123 更新时间:2023-12-02 20:44:03 24 4
gpt4 key购买 nike

有没有办法在Oracle的GV$SESSION View 中唯一标识当前 session ?

我遇到了以下问题:在 Oracle RAC 配置的情况下,以下查询可能返回多行:

SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND SID = Sys_Context('USERENV', 'SID');

使用 V$MYSTAT 也不是一个选项,因为当前 session 可能无法访问 V$MYSTAT(例如,当禁用统计信息时)。

最佳答案

试试这个:

SELECT SID, SERIAL#
FROM V$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID');

由于您对当前 session 感兴趣,因此当前 session 必须位于本地实例上(根据定义),因此请使用 V$SESSION 而不是 GV$SESSION 。此外,您只需要 AUDSID 来唯一标识您的 session 。

如果您出于某种原因确实需要使用GV$SESSION(无法想象为什么会这样),您可以这样做:

SELECT SID, SERIAL#
FROM GV$SESSION
WHERE AUDSID = Sys_Context('USERENV', 'SESSIONID')
AND INST_ID = USERENV('Instance');

此外,获取当前 session 的 SID 的另一种方法是:

select sid from v$mystat where rownum=1;

希望有帮助。

关于oracle - 有没有办法从oracle中的gv$session获取有关当前 session 的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28814543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com