当我使用SQL Developer检查会话时区时,
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 Enterprise Edition Release 11.2.0.4.0 - 64位生产版本
- 操作系统服务器:x86_64 / Linux 2.4.xx
- 客户端操作系统:Microsoft Windows 10 Professional
ALTER SESSION SET time_zone = ...
。这可能是对的。但是它从哪里获取地区信息呢?从Windows操作系统吗?至于SQLPlus,那个工具从哪里获取时区信息呢?从服务器操作系统吗?还是有一些Oracle设置在起作用?我还是很好奇 :-) 我看到了第二个帖子,但我不想知道如何更改SQL Developer的设置(实际上我更喜欢它的EUROPE/BERLIN时区,而不是SQLPlus的+02:00)。 - undefinedsqldeveloper/bin/sqldeveloper.conf
配置文件,该文件将用于设置Java VM属性。我仍然没有找到任何关于初始值来源的文档(如果在配置文件中没有明确设置),但我的初步假设是来自操作系统(你可以通过更改操作系统的时区来进行测试)。 - undefined