会话如何获得其初始时区

时间:2018-10-01 07:32:17

标签: oracle timezone oracle-sqldeveloper sqlplus

当我通过

SQL开发人员检查会话时区时

select sessiontimezone from dual;

我得到'Europe/Berlin'。在 SQL * Plus 中执行相同操作时,我得到'+02:00'

处理TIMESTAMP WITH LOCAL TIMEZONE时会有所不同,因为由于夏令时,德国有时处于UTC + 01时区,有时处于UTC + 02。 (当前使用UTC + 02。)

这两个工具如何获取/设置(?)它们的默认时区?

系统信息:

  • 通过TNS进行连接。
  • SQL Developer:18.1.0.095.1630
  • Oracle DBMS:Oracle Database 11g企业版11.2.0.4.0版-64位生产
  • 操作系统服务器:x86_64 / Linux 2.4.xx
  • 操作系统客户端:Microsoft Windows 10 Professional

1 个答案:

答案 0 :(得分:1)

documentation仅列出环境变量ORA_SDTZ

但是,它来自以下设置:

  • 注册表键HKCU\SOFTWARE\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ
  • 注册表项HKLM\SOFTWARE\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ

    (分别为HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ

  • 环境变量ORA_SDTZ

  • 计算机的当前语言环境设置(最有可能)。
  • 如果找不到上面的数据库时区(只是一个假设)

您的客户端应用程序可能还有一些会话时区的其他来源,例如,请参见How to change the timezone of Oracle SQL Developer / Oracle Data Modeler?

环境变量应具有最高优先级。