2012-03-01 59 views
4

我的团队正在尝试从ORACLE 10g迁移到11g。这些都是我们的系统规格:10.2g到11.2g和Microsoft ODBC for Oracle问题

我们目前的生产服务器:

ORACLE 10.2g 
ORACLE Application Express(3.0) 
Apache 
Red Hat 64 bit 

我们(在生产中目前还没有)新服务器:

ORACLE 11.2g 
ORACLE Application Express (4.1.1) 
ORACLE HTTP Server 
Red Hat 64 bit 

我们已成功地安装11g中,安装APEX 4.1和应用最近的补丁集。 我们迁移的唯一原因是我们的业务用户可以访问Crystal Reports XI,MS Access/Excel 2003,它们用来连接我们的数据库。典型的用户具有Window XP SP 3(32位)操作系统。目前,我们使用Microsoft ODBC for Oracle驱动程序(版本2.575.1132.00)连接到我们的10g数据库,并且没有任何问题。但是,当我们尝试连接到11g时,我们不断得到ORA-03113:通信通道错误的文件结束。在ORACLE SQL Developer中,我们可以使用“基本”连接连接到我们的11g实例。我也使用了“TNS”条目,并且效果很好。

我认为,企业用户通过安装ORACLE 3.1.3.6发现这是用于其他Oracle数据库获得的微软ODBC对Oracle驱动程序。他们也有Oracle客户端7.3.3,我可以看到ODBM数据源管理屏幕中提到的Oracle73(2.00.03.01)。

我们已经尝试google搜索结果和之后的各种测试,我们得出的结论是,这是一个ODBC驱动程序的问题。据我们了解,ORACLE SQL Developer使用不同的基于JAVA的驱动程序进行连接,因此它不使用Microsoft版本。

有人可以证实,我们的理解是正确的大约有是与微软ODBC兼容问题的Oracle驱动程序(版本2.575.1132.00)和11.2克? 如果是这样,你可以推荐一个兼容的驱动程序来使用Crystal和Access/Excel来提取数据?

我认为,企业用户通过安装ORACLE 3.1.3.6发现这是用于其他Oracle数据库获得的微软ODBC对Oracle驱动程序。他们也有Oracle客户端7.3.3,我可以看到ODBM数据源管理屏幕中提到的Oracle73(2.00.03.01)。

回答

3

用于Oracle的Microsoft ODBC驱动程序使用OCI(Oracle调用接口)API的古老版本编写,该版本在Oracle 8发布时已过时(已超过十年和11个主要版本)。微软选择解除对这个驱动程序的支持,而不是将其移植到新版本的OCI API上。 Oracle 7客户端可以连接到Oracle 10.2数据库,但Oracle不支持Oracle 7客户端和Oracle 11.2数据库之间的连接。

您需要升级安装在业务用户计算机上的Oracle客户端的版本,并且您需要使用适用于该版本Oracle客户端的最新版本的Oracle ODBC驱动程序。假设您安装了Oracle客户端的11.2版本(如果用户仍然需要连接到不支持来自11.2客户端的旧数据库),那么不要升级到11.2客户端的唯一原因是,您'd想要使用最新版本的11.2.0.x Oracle ODBC driver。 Oracle客户机安装应该也可以选择安装Oracle ODBC驱动程序的一个版本 - 这也应该足够了。

+0

我认为业务用户通过安装用于其他Oracle数据库的ORACLE Discover 3.1.3.6获得了Microsoft ODBC for Oracle驱动程序。他们也有Oracle客户端7.3.3,我可以看到ODBM数据源管理屏幕中提到的Oracle73(2.00.03.01)。 – 2012-03-01 20:51:17

+0

@AlistairLaing - 如果他们有一个旧的Oracle 7客户端,那么肯定需要升级Oracle客户端的版本才能连接到11.2数据库。我建议在每个人的机器上安装11.2客户端,尽管10.2客户端也是足够的(假设它仍然可用)。 – 2012-03-01 20:54:20

+0

所以我正确地认为它是与11g的Oracle驱动程序一起使用Microsoft ODBC的兼容性。我们幸运的是,这个驱动程序已经与10g工作?所以我正确地认为ORACLE客户端只包含ODBC驱动程序? – 2012-03-01 20:59:58