自從發布了一篇部落格Oracle免用戶端For .Net(增加分析Devart和DataDirect)後,非常非常多的同學前來問各種Oracle用戶端運行時安裝配置的問題,嚴重影響了我們團隊的正常工作和日常交流。我甚至多次懷疑我是不是不應該發那篇博文,但是又不忍心刪除!
我們寫那篇博文的初衷,僅僅是為使用我們的資料對應架構XCode(包含ORM)進行Oracle開發的同學而準備!
只是因為這些技術點對於非XCode使用者也有用,所以才發出來。不曾想,給我們自己帶來這麼多的麻煩。
這裡先為XCode使用者做一點補充,非XCode使用者請直接跳過,看結尾!
1,新版本XCode內建Oracle用戶端運行時的環境檢測,自動在這些目錄尋找OCI:目前的目錄、上一級的OracleClient目錄、各個盤下的OracleClient目錄
2,XCode支援在連接字串裡面通過DllPath=X:\OracleClient來指定OCI目錄
3,如果XCode檢測不到任何Oracle用戶端運行時,會自動到伺服器下載一份,並部署到C:\OracleClient。可以自己拷貝到別的盤去
4,所以,XCode使用者可以用MSSQL或SQLite等資料庫開發好應用程式,然後部署的時候修改連接字串為Oracle的連接字串即可,XCode會為你準備好環境。
5,XCode所支援的各大資料庫,只要有連接字串,就可以工作!
6,除MSSQL外,使用其它資料庫全部會自動下載相應的驅動(分x86和x64):Access、SqlCe、SQLite、Oracle、MySql、Firebird、PostgreSQL
7,如果生產環境機器不能上網,可以自己把驅動等相關檔案拷貝帶走。只有用Oracle時會有一個目錄放在C:\OracleClient,其它資料庫下載的驅動檔案全部放在目前的目錄。(主要是因為OCI那個目錄太大)
8,XCode只做下載驅動來使用,不修改系統內容變數和註冊表等任何東西,絕對綠色。
9,如果你只想要一個Oracle用戶端運行時,可以用我們代碼產生器XCoder上新增的一個功能(“Oracle用戶端運行時檢查”),它會給你準備好一個可用環境
最新版XCoder下載連結:http://www.kuaipan.cn/file/id_2378544298616942.html
非XCode使用者請看:
1,只要有OCI,可以不用安裝Oracle的任何東西,就可以連上資料庫,可能需要配置一下環境變數和註冊表
2,該方法無視任何程式設計語言,非.Net的也可以。比如那個PL Dev,只需要拷貝OCI,然後選項裡面指定oci目錄即可
3,如果你懷疑上述兩點,你可以不用看本文了
4,OCI.dll的版本和Oracle.DataAccess.dll要求的版本必須一致,不一致就自己湊,找到一致的
5,.Net程式調用Oracle.DataAccess.dll,而Oracle.DataAccess.dll會找OCI.dll,順序是:目前的目錄、設定檔指定目錄、環境變數Path、系統目錄
6,如果上面一點沒看懂,只怪你Windows沒學好。目錄搜尋邏輯是Windows開發的基本功。
7,再次重申,所做的一次,配置環境變數也好,配置註冊表也好,只是為了找到OCI.dll!!!
8,哦,忘了一點,注意OCI所在目錄的許可權,也許應用程式沒有許可權執行OCI.dll。另外注意各個目錄配置可能導致的DLL版本衝突。
100,據Oracle官方論壇說,官方即將推出純託管的驅動,到時候只要一個dll就行,再也沒有這麼多煩人的事情。如果上面這麼多辦法都不行,就等等吧。
10000,如果還不行,那就用XCode算了!
最後:
在確定你有仔細閱讀、思考這兩篇博文的內容之前,請不要打攪我們!僅作技術交流,我們不承擔任何後果!
歡迎各種.Net及逆向工程的交流,QQ群:1600800