先前遇到了一系列的问题,结果把32位和64位的Oracle都装进来了。数据库
但因为项目的dll使用的是32位的,用64位的Oracle在运行时会出现 “未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。” 这个错误。app
而改用32位Oracle后,开启PLSQL时又出现了 “error while trying to retrieve text for error ORA-01804” 这个错误,致使没法链接数据库。blog
解决方法:变量
32位和64位的Oracle都装了(不知道有没有影响,实际上在后面配置环境变量时只使用到了32位的Oracle,但事实证实PLSQL链接数据库须要64位的Oracle)cli
关键来了,以前按照网上的方法配置环境变量,结果在项目运行时和PLSQL链接数据库时总有其中一个会出现上面说的错误。配置
最后,问题仍是回到了环境变量上,由于项目是32位的dll,因此配置时,路径都是用的32位的Oracle,这时,项目运行没有问题,但用PLSQL链接数据库时会出现 “error while trying to retrieve text for error ORA-01804” 这个错误,个人解决方法:将 “ORACLE_HOME” 这个环境变量删除便可。network
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” )。im
附上个人环境变量配置:
Path: D:\app\Administrator\client\Administrator\product\12.1.0\client_1\BIN