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 假设“时区版本”指的是时区文件版本。我没有看到即时客户端在哪里有时区文件。任何建议都表示赞赏。
使用“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)