The provider is not compatible with the version of Oracle client sometimes (提供程序与此版本的 Oracle 客户机不兼容)

其实这个问题很直观,就是你在C#项目中使用的Oracal.DataAcess.dll文件的版本与你电脑上安装的ODAC.EXE(ODP.NET)版本不一致,不论是32位或者是64位平台不一致,还是版本的高低不一致,反正就是不匹配造成了问题。具体的解决办法网上有很多,这里就不再细讲。

 

但是这次我遇到的问题很奇怪。我的机器上都装了多个ODAC.EXE的版本,包括两个64位的,一个32位的,而且明明我在C#中使用的Oracle.DataAccess.dll的版本跟某个ODAC是完全一致的,但是还是抛出了The provider is not compatible with theversion of Oracle client sometimes这个异常,这让我很费解。而且更奇怪的是,这个异常并不是每次都抛出来,时而有时而没有,也就是说,我的代码与数据库的连接,一会能连上一会不能连上,全部靠运气。

 

找了很久,终于找到了问题的根源。因为这是一个遗留的项目,我下载到了本地,看到了这个项目中有圈起来的那几个文件,虽然觉得奇怪,我也没有在意太多。但是正是这几个文件,才造成了上述的问题。当我把这几个文件移除之后重新编译了一下,就一切正常了,能正常连接到数据库。所以,这次总结的道理就是,在有关Oracle的C#项目中,不要随便引入oci这些文件。(知道此刻我都不知道为什么前人做这个项目的时候会引入这几个文件。)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值