前几年就倒腾过遇到此问题,没想到最近要修改一个老的项目,又碰到了,竟然倒腾了一下午才解决,同一个地方摔了2次跤,这也是我写这篇博客的原因。
先说说环境:vs2019,oracle 11g 64位
出现问题:
连接库的时候,报异常 “尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。”
多么熟悉的一段话,几年前就曾经见过,也是查了半天资料,解决了,所谓的解决也可能是稀里糊涂的,没有找到真正的原因,为今日的遭遇埋下隐患。
解决办法:安装oracle client 32位客户端。具体可以oracle官网下载 https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
配置环境变量:path
在其后加入32位客户端的安装位置 D:\app\instantclient32bit\instantclient_19_5 这是我的安装位置
然后重启电脑,满以为可以正常。现实却是重重的打击:
接着报此错误:
ORA-12154 TNS:could not resolve the connect identifier specified
看到此问题,说明还是有进步,因为上一个32位在64位模式下运行的问题已经解决了,再次分析,这个错误其实是没有找到tnsnames.ora文件。经过各种搜索,同样是环境变量的问题。
解决如下:
添加 TNS_ADMIN环境变量
值为:D:\app\oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN\ 这是我本机的oracle安装路径下tnsnames.ora所在的目录。
再次重启,可以连接了~~~
总之倒腾了一下午,其实很简单,归根到底,自己不注意总结。这次记录下来,吃一堑长一智!