Mybatis 访问64位Oracle时的问题

Ibatis提供的访问Oracle的连接方式很多

1.ODBC

没有尝试

2.OLEDB

报没有注册OraOLEDB.ORACLE.1提供程序的错误,不使用IBatis直接使用OLEDBConnection没有出现这个问题

3.Oracle.Client

第一种方法: 这个是微软提供的连接程序,微软已经表示不再继续提供支持,由于连接的是64位的Oracle,所以生成的项目必须选择生成64位,

否则会提示“{尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。}”。

最后是把底层调用sql和main中调用底层的项目都改为64位,才解决。这样没法调试了.... ,

第二种:经过同事的指点最后安装了11g32位的Oracle客户端  win32_11gR2_client, 具体可以百度下载,

经过检查,在安装以后会在path下添加一安装后的client路径。最后并重新打开项目,把所有的生成修改为any cpu 也可以解决

4.ODP.NET

使用的Oracle的Oracle.Access.dll访问数据库,位数和安装的Oracle位数是一样的,所以64位下的ORACLE.ACCESS.DLL也是64位,如果项目是32位会提示

否则会提示“无法加载ORACLE.ACCES.DLL VERSION=XX.XX.XX.XX PUBLIC KEY=0EA8127128BA2D43”的错误,

最后是把底层调用sql和main中调用底层的项目都改为64位,才解决。这样还是会无法调试,

在底层的Providers.config 下可以根据Oracle的提供Oracle.Access.dll的版本进行修改

posted on 2014-05-06 22:34  Dunk  阅读(256)  评论(0编辑  收藏  举报

导航