win7(64bit) 下使用Excel2007(32bit) 连接 Oracle数据库遇到了兼容性问题。

在用EXCEL来连接数据库中的数据时,建立连接和建立查询时都出现了问题。之前可以,只是今年重装了系统,就有问题了。错误大体上有两个现象:

1,找不到Oracle ODBC Driver

2. 出现ODBC驱动程序不匹配的问题。

关键问题还是出现在了对64位windows的ODBC理解的不足。

1. 关于ORACLE ODBC Driver的安装方法(有几种途径,最简单的途径就是安装oracle DB server, 但这是体量最大的笨方法; 成本最低的安装方法就是下载oracle instantclient + oracle odbc driver)。最后验证安装是否成功也是关键,否则可能安装成功了还不知道。

2. windows 64位系统下查看ODBC Driver的两个不同路径。默认打开的是64位的ODBC, 32位的ODBC路径为:C:\windows\SysWOW64\odbcad32.exe。原先安装完Oracle odbc driver后在64位的ODBC下始终看不到已安装的ORACLE ODBC驱动,一直以为没安装好。实际使用32位的ODBC打开后看到了更多的驱动。这个不知道的话会折腾好久。

64位ODBC看到的驱动:

而32位ODBC下看到了更多的驱动:

3. 省事点的办法就是安装oracle server. 这些配置都会在安装的时候帮搞定。

 

小结:

  1. EXCEL通过ODBC连接Oracle, 安装ORACLE DB Server 和 Oracle Client不是必要的,可以安装Oracle Instant Client + ODBC Driver 来实现。
  2. windows 64位下ODBC存在两个版本,一个是32位的,一个是64位的。两者下看到的odbc driver列表完全不一样。
  3. 网上有win7(64) 下Office2007 32bit连接数据兼容性问题,理解时可能会有偏差,不要第一反应去认为安装一个64位的office解决。(这应该是可以解决的)。但关键还是对应的odbc driver版本。 oracle odbc 64 bit driver与32 bit的应用程序使用时存在兼容性问题。
  4. 解释“为什么重装系统后不能像以前一样工作", 之前系统开发时安装了很多开发环境,包含oracle db server 11g等其他工具,这个安装会同时安装好oracle odbc driver。所以office可以使用oracle数据库连接。

 

参考文章:

  1. http://www.cnblogs.com/shelvenn/p/3799849.html
  2. https://docs.oracle.com/database/121/LNOCI/oci01int.htm#LNOCI16167
  3. http://www.oracle.com/technetwork/database/features/oci/odbc-ic-releasenotes-094306.html
  4. ODBC Developer Center: http://www.oracle.com/technetwork/database/windows/index-098976.html
  5. https://www.experts-exchange.com/questions/26947541/Install-Oracle-Instanct-Client-on-Windows.html
  6. ODBC Administrator tool displays both the 32-bit and the 64-bit user DSNs in a 64-bit version of Windows:  https://support.microsoft.com/en-us/kb/942976
  7. win7(64bit)下通过odbc连接oracle的解决方案 http://blog.csdn.net/hzfu007/article/details/9023313

 

发表评论