infor 64位服务端,32位客户端Oracle数据源驱动(ODBC)

时间:2022-05-23 07:41:18
        这个场景比较特殊,是我在安装informatica 9.6.1时,数据源导入遇到的问题触发我写的这篇文章。数据库服务器通常安装的都是64位的操作系统和64位的数据库软件。客户端使用的操作系统和客户端程序复杂度远比服务器要多很多,安装的客户端操作系统既可能是32位,也可能是64位,在32位的操作系统只能安装32位的数据库客户端软件。在64位的客户端操作系统可以安装32位和64位的数据库客户端软件,但是如果客户端使用pl/sql,那么只能安装32位的Oracle 数据库客户端(pl/sql不支持64位的Oracle客户端),如果开发的软件只支持32位平台的,那么在64位的客户端操作系统可能也只能安装32位的Oracle数据库客户端软件,通过32位的Oracle 数据库客户端软件连接到64位的数据库。
        配置32位的ODBC(必须安装32位的Oracle客户端,开发的Java程序无法加载64位的Oracle数据库客户端驱动)连接到64位的数据库环境,该程序必须确保在32位的客户端和64位的客户端操作系统都能正常使用,32位的客户端下运行是没问题的,这里讨论的就是在64位客户端下运行,通过32位ODBC连接数据库遇到的问题。讨论场景的服务器、客户端配置如下:
        服务器操作系统:win7或者windows server 2008 R2
        数据库服务器:Oracle 11gR2  Database 64bit
        客户端:Win7 旗舰版 x86_64bit
        Oracle Database客户端:PL/SQL Developer 32bit
        Java JDK:jdk1.8

下面对遇到的问题及解决方法进行讨论:
1.数据库支持的操作系统版本。
        数据库客户端都运行在Windows平台,首先明确Oracle数据库支持的Windows平台。
infor 64位服务端,32位客户端Oracle数据源驱动(ODBC)
        从上面的文档中可以看出Oracle的11gR2数据库产品是完全支持Windows7的专业版、企业版和旗舰版,所以在这样的平台安装数据库和客户端都是没有问题的。

2.安装32位的Oracle Database客户端软件。
        在win7 64bit的客户端安装32位的Oracle Database客户端软件(instantclient-basic-win32-11.2.0.1.0),如果想安装PL/SQL developer的话,需要配置一下,在文件夹里增加NETWORK---》ADMIN-----》增加一个TNSNAMES.ORA文件,双击文件夹里的ODBC_install.exe,安装后准备配置ODBC的时候发现一个问题,通过传统的控制面板->ODBC管理器->创建ODBC数据源的方式无法找到相应的Oracle Database驱动程序,如下图所示。
infor 64位服务端,32位客户端Oracle数据源驱动(ODBC)
从上图可以看出没有Oracle Database的驱动程序。

3.打开加载32位驱动程序的ODBC管理器。
        通过传统的方式之所以无法找到Oracle Database驱动程序,原因在于平台是64位,但安装的是32位的Oracle Database软件,常规的ODBC管理器不会加载32位的驱动程序。通过执行C:\Windows\SysWOW64\odbcad32.exe程序可以打开加载32位驱动程序的ODBC管理器,如下图所示。
infor 64位服务端,32位客户端Oracle数据源驱动(ODBC)
上图中的"Oracle in OraDb11g_home1"即使32位的客户端驱动程序。

4.创建连接数据库的ODBC数据源。
         如下图所示,创建连接到数据库的ODBC数据源。

infor 64位服务端,32位客户端Oracle数据源驱动(ODBC)

5、登录informatica客户端,在informatica 的PowerCenter Designer中,源----->数据库导入表----->连接数据库成功

infor 64位服务端,32位客户端Oracle数据源驱动(ODBC)

可以看到表了,bingo!!!