【问题标题】:Basis of V$TIMEZONE_NAMES oracle viewV$TIMEZONE_NAMES oracle 视图的基础
【发布时间】:2016-03-06 12:54:32
【问题描述】:

我正在 V$TIMEZONE_NAMES 视图中查找一些时区,但在 oracle 视图中找不到这些时区。我看不到的一些时区示例是:欧洲/安道尔,亚洲/科伦坡。这些只是 2 个例子。我有大约 80 个这样的时区名称的列表。 谁能告诉我如何将这些时区添加到视图中。我知道这是一个oracle内部视图。因此,基本上我要问的是,oracle 如何知道它必须列出的时区,以及如果我需要添加缺失的时区以使其显示在 V$TIMEZONE_NAMES 视图中,我应该怎么做。 谢谢

【问题讨论】:

  • 检查你的数据库使用的是哪个时区文件,见Choosing a Time Zone File
  • @WernfriedDomscheit 好点,versionv$timezone_file 很重要。
  • 还有FILENAMEv$timezone_file 很重要。也许您使用名为timezone_<version_number>.dat 的短文件而不是名为timezlrg_<version_number>.dat 的大文件

标签: sql database oracle timezone


【解决方案1】:

我看不到的是:欧洲/安道尔、亚洲/科伦坡。

您可能遗漏了一些东西,我可以看到两个时区

SQL> SELECT tzname,
  2         tzabbrev
  3  FROM   V$TIMEZONE_NAMES
  4  WHERE  tzname IN ('Europe/Andorra', 'Asia/Colombo');

TZNAME               TZABBREV
-------------------- --------------------
Asia/Colombo         LMT
Asia/Colombo         MMT
Asia/Colombo         IST
Asia/Colombo         IHST
Asia/Colombo         LKT
Europe/Andorra       LMT
Europe/Andorra       WET
Europe/Andorra       CET
Europe/Andorra       CEST

9 rows selected.

V$TIMEZONE_NAMES 实际上是V_$TIMEZONE_NAMES 视图公共同义词。您也可以查询 SYS.V_$TIMEZONE_NAMES

此外,根据您的数据库版本,您将拥有不同的时区文件。我在 Oracle 12.1 上,我有以下文件:

SQL> SELECT filename, version FROM v$timezone_file;

FILENAME                VERSION
-------------------- ----------
timezlrg_18.dat              18

您的文件名版本可能不同。在每个版本中,Oracle 都会为这些文件发布补丁。

【讨论】:

  • 在我的数据库中运行相同的查询不会给我相同的结果。不幸的是,我是 Java 专家,而不是 Oracle 专家。因此想知道我如何获得与您相同的结果。这就是我得到的亚洲/加尔各答IST亚洲/达卡IST亚洲/达卡IST亚洲/加沙IST亚洲/耶路撒冷IST亚洲/卡拉奇IST亚洲/特拉维夫IST大西洋/雷克雅未克IST爱尔兰IST欧洲/贝尔法斯特IST欧洲/都柏林IST冰岛IST以色列IST
  • 一切都取决于驻留在数据库服务器中的时区文件。请检查并确认
  • 文件名为timezlrg.dat,版本为4。我的数据库是Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
猜你喜欢
  • 1970-01-01
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
  • 2011-09-28
  • 2019-08-11
  • 2015-06-09
  • 1970-01-01
相关资源
最近更新 更多