Oracle 11g 数据库上的 Oracle ORA-01805

Ste*_*bbi 6 oracle instantclient oracle11g

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

System.Data.OracleClient.OracleException:ORA-01805:日期/时间操作中可能出错

针对异常的建议操作是确保客户端和服务器的版本相同:

ORA-01805:日期/时间操作中可能出错原因:客户端和服务器上的时区文件不匹配。操作可能会导致基于本地时区文件的错误结果。行动:请确保客户端和服务器时区版本相同。

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

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

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

FILENAME             VERSION                
-------------------- ---------------------- 
timezlrg_14.dat      14     
Run Code Online (Sandbox Code Playgroud)

我假设客户端指的是我安装的 Instant Client,版本 11_2?我正在通过System.Data.OracleClient.OracleConnection.NET Framework 提供的a 运行查询。UI 假设“时区版本”指的是时区文件版本。我没有看到即时客户端在哪里有时区文件。任何建议都表示赞赏。

Kub*_*iro 3

使用“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
Run Code Online (Sandbox Code Playgroud)