oracle11g免安裝小巧客戶端


  在我的寫的windows7,windows server2008靜默安裝配置oracle11g(服務器版)已經對oracle11g的全自動安裝服務進行了詳細配置,可是對於一個很小的.net應用程序來說,安裝如此龐大的服務器版本的軟件實在是用高射炮打鳥,根本不必要的,而在官方網上有一個win32_11gR1_client.zip客戶端,自己查看壓縮包屬性也有488M,也不小啊,也不太適合一個很小的只有幾M的應用程序使用。不得已,自己上網搜索,發現了這個還可以自己打造。憑借對原來綠色軟件制作的經驗,我也自己安裝了win32_11gR1_client.zip客戶端,記錄下注冊表設置,然后刪除安裝,保留下安裝文件夾里的所有文件。然后把我那個很小應用軟件(需要訪問遠程的oracle數據庫)放在這個文件夾里。刪除一下直接感覺無用的文件,先抽取可能用不着的文件,保留放在另一個備用的文件夾里,然后運行程序。如果程序能運行,那么繼續抽取可能用不着文件;如果不能運行,那么可以確定這個文件是程序需要的,經過一步一步這樣的反復處理。我得到了如下精簡的oracle客戶端。

  在這個文件夾里發現了.net應用程序必須具備的DLL組件:

  1. oci.dll
  2. oraops11w.dll
  3. oraociei11.dll
  4. msvcr71.dll
  5. oracle.DataAcess.dll
  6. 可選:oraocci11.dll
  7. 可選:orannzsbi1.dll
  8. 還有一個ora文件,在11g可以不要,在9g中需要,基於現在大部分都用11g,這個文件可省略。

  在上文中記錄了注冊的表設置,這里正好可以建立一個reg注冊表文件,通過注冊表就可以配置這個精簡免安裝客戶端了。但是因為有人可能不懂注冊表,所以不推薦這們用。在這里推薦你設置系統path環境變量,這大部分人都會,現在把以上文件復制到一個空的文件夾,重命名為oracleclient,這就是我們制作的免安裝客戶端。使用時在path環境變量中添加你的系統中這個oracleclient客戶端路徑就可以了。也可以把這個文件里DLL直接放在你要運行的.net程序里,那樣也不需要配置環境變量,不過如果那樣做的話,也直限你那個程序能用了。

以下提供本文下載連接

    OracleClient11g下載

 

(這里插一段來自大石頭的關於版本不兼容的說明)

The provider is not compatible with the version of Oracle client

提供程序與此版本的 Oracle 客戶機不兼容

這個可是開發.Net For Oracle程序中最常見的錯誤了。

實際上,這是使用ODP.Net經常遇到的問題,在ODP.Net中,Oracle.DataAccess.dll=>OraOps11w.dll=>oci.dll,前面兩者的版本必須100%匹配(OraOps11w.dll里面通過硬編碼寫死了的)(也許這就是Oracle官方把OraOps11w.dll跟Oracle.DataAccess.dll放在一起的原因)。后面兩者的版本似乎要求不高,是C++之間的引用。

而.Net的Oracle驅動,版本要求就非常低了,只要能找到oci.dll,基本上就能很好工作,它不會去檢查版本什么的。如果找不到oci.dll呢,就會報這個錯誤:

System.Data.OracleClient 需要 Oracle 客戶端軟件 8.1.7 或更高版本。

當然,oralce11g只在環境變量中設置path就行;如果是oracle9i310運行時光有OCI目錄(在環境變量Path中設置)不行,還得設置環境變量ORACLE_HOME為OCI目錄,否則報錯(因為oci.dll要用別的dll):

OCIEnvCreate 失敗,返回代碼為 -1,但錯誤消息文本不可用。

 

言歸正傳!

最新的ODP.Net驅動無法使用oracle9g運行時,請直接使用oracle11g的。

此外oracle驅動還有

           Devart dotConnect for Oracle,不過它是收費的。據網友說他很好用,沒用過。

    DataDirect 產品說明非常吸引人,唯一一個100%托管代碼數據提供者,不需要Oracle OCI客戶端庫,自己可以查看。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM