我们的 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
我假设客户端指的是我安装的即时客户端,即版本 11_2?我正在通过System.Data.OracleClient.OracleConnection
.NET Framework 提供的 a 运行查询。UI 假设“时区版本”指的是时区文件版本。我看不到即时客户端在哪里有时区文件。任何建议都可以接受。