先前遇到了一系列的問題,結果把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