Oracle 32位和64位版本之间的问题


先前遇到了一系列的问题,结果把32位和64位的Oracle都装进来了。

但由于项目的dll使用的是32位的,用64位的Oracle在运行时会出现 “未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。” 这个错误。

而改用32位Oracle后,开启PLSQL时又出现了 “error while trying to retrieve text for error ORA-01804” 这个错误,导致无法连接数据库。

解决方法:

32位和64位的Oracle都装了(不知道有没有影响,实际上在后面配置环境变量时只使用到了32位的Oracle,但事实证明PLSQL连接数据库需要64位的Oracle)

 关键来了,之前按照网上的方法配置环境变量,结果在项目运行时和PLSQL连接数据库时总有其中一个会出现上面说的错误。

 最后,问题还是回到了环境变量上,因为项目是32位的dll,所以配置时,路径都是用的32位的Oracle,这时,项目运行没有问题,但用PLSQL连接数据库时会出现  “error while trying to retrieve text for error ORA-01804”  这个错误,我的解决方法:将  “ORACLE_HOME”  这个环境变量删除即可。



 Ps:

     出错原因推测:原本 “ORACLE_HOME” 的变量值为  “D:\app\Administrator\client\Administrator\product\12.1.0\client_1\network\admin”  这是指向32位Oracle的路径,导致我使用的PLSQL连接数据库时出错。而先前使用指向64位Oracle的路径时,我的PLSQL能够正常连接数据库。我猜测在删除环境变量  “ORACLE_HOME”  后,PLSQL会自动寻找合适的Oracle版本使用(同时装了64位Oracle也许是伏笔?)。

如果按上述方法PLSQL连接数据库时还是报这个错,就尝试将环境变量 “ORACLE_HOME” 的变量值改为指向64位Oracle的路径(我的是“D:\app\client\Administrator\product\12.1.0\client_1\network\admin” )。

附上我的环境变量配置:

      Path:  D:\app\Administrator\client\Administrator\product\12.1.0\client_1\BIN

99.png


原文链接:https://www.cnblogs.com/binghuaZhang/p/14344046.html