如何在 Oracle 中列出连接会话的时区

How to list the timezone of connected sessions in Oracle

我需要找出不属于我自己的会话的会话时区。

我可以在v$session中找到会话,但我不知道如何找出每个会话记录的关联时区。

例如相当于连接为那个会话和 运行 select sessiontimezone from dual;

V$SES_OPTIMIZER_ENV的部分参数有a possibility

但似乎没有官方方法可以使用此 time_zone 参数的动态视图来执行此操作。而且没有触发器 do something when session is modified...

不过看起来可以 do so with oradebug。看来您必须以 sysdba 身份连接:

3 级的 Errorstack 转储给定会话的修改参数和事件,例如 ospid 9768

connect /as sysdba
oradebug setospid 8787
oradebug dump errorstack 3

跟踪文件将包含以下部分的会话修改结果:DYNAMICALLY MODIFIED PARAMETERS:...

我只是复制它,因为我没有可以测试它的数据库。但是如果 post 从网站上消失,我们在 SO 中有它 :)