我们的Oracle 10g数据库最近已升级到11g。该数据库正在Windows Server 2003 X64计算机上运行。在来自访问具有TIMESTAMP(6)WITH TIME ZONE数据列的表的.NET应用程序的SQL查询中,出现以下异常。



异常(exception)的suggested action是为了确保客户端和服务器的版本相同:



我已经运行了以下查询来检查有关数据库的时区。我没有找到有关如何为客户端设置时区(或更改时区文件)的信息。

SELECT dbtimezone FROM DUAL;
select * from v$timezone_file;

DBTIMEZONE
----------
+00:00

FILENAME             VERSION
-------------------- ----------------------
timezlrg_14.dat      14

我认为客户端是指我已安装的Instant Client,即版本11_2?我正在通过.NET Framework提供的System.Data.OracleClient.OracleConnection运行查询。我假设“时区版本”是指时区文件版本。我看不到即时客户端在哪里有时区文件。任何建议,不胜感激。

最佳答案

使用“genezi -v”了解时区文件的版本。

这是我的Linux机器中的一个示例:

$ genezi -v
Client Shared Library 32-bit - 11.2.0.2.0

System name:    Linux
Release:    2.6.32-34-generic
Version:    #77-Ubuntu SMP Tue Sep 13 19:39:17 UTC 2011
Machine:    x86_64

Operating in Instant Client mode.
Small timezone file = timezone_14.dat
Large timezone file = timezlrg_14.dat

关于oracle - Oracle 11g数据库上的Oracle ORA-01805,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7678485/

10-11 02:46
查看更多