C#遠端連線Oracle資料庫(不安裝用戶端)

來源:互聯網
上載者:User

標籤:


本文 由 彭旭 創作,採用 知識共用 署名-相同方式共用 3.0 中國大陸 許可協議進行許可。歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連。

 

前言
由於工作需要,現需要從遠程Oracle資料庫擷取資料。本人開始以為可以直接遠程,試了下竟然不行,提示“System.Data.OracleClient 需要 Oracle 用戶端軟體 8.1.7 或更高版本。”。公司的要求就是不裝用戶端,沒法子只好找找看有沒有其他方案。

Instant Oracle
運氣不錯,還真找到一可用方案,就是Instant Oracle。
關於Instant Oracle的介紹請看http://www.oracle.com/technetwork/database/features/oci/index.html。

下載Instant Oracle
Instant Oracle的:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html。
請根據作業系統和服務端Oracle版本選擇下載,下載需要帳號,註冊一下就行了。
本人系統是Windows Server 2003,選擇Windows(32位)版本。由於遠程伺服器裝的是Oracle 10g,我選擇了Version 10.2.0.5的Basic包,33.2M。至於其他的Basic Lite、JDBC Supplement、SQL*Plus、SDK和ODBC包,有興趣的朋友可以自行研究。


安裝Instant Oracle
其實不需要安裝,解壓就可以了,要不要重新命名看個人了。這裡說這些是想等下裝個PLSQL測試下。本人將解壓後的instantclient_10_2重新命名為OracleInstantClient_10_2,拷貝到F盤根目錄。

PLSQL Developer
如果需要安裝PLSQL Developer,請按步驟設定。
1.在剛才的F:\OracleInstantClient_10_2目錄建立兩個目錄,層級為NETWORK\ADMIN。然後在建立一記事本,重新命名為tnsnames.ora,開啟後輸入配置內容。將HOST、PORT、SERVICE_NAME改為自己的內容,至於第一行的orcl是與登入的時候有關,寫成abc什麼的都可以,不過登入時的Database也得填abc。

orcl =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.60)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME = orcl)    )  )

 

2.設定環境變數(我的電腦->右鍵“屬性”->進階->環境變數->使用者變數),建立一個使用者變數,變數名NLS_LANG,變數值SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

3.配置PLSQL Developer。Tools->Preferences->Oracle->Connection,設定Oracle Home為F:\OracleInstantClient_10_2,OCI library為F:\OracleInstantClient_10_2\oci.dll。
4.重啟PLSQL Developer,登入。

遠端連線Oracle
說明:以上的環境變數、配置都是為PLSQL Developer服務的,單純的遠程Oracle就沒必要做那些操作了,只需要拷貝4個dll到項目中就可以了。

  • OCI Instant Client Data Shared Library
    • oraociei10.dll (Basic version)
  • Client Code Library
    • oci.dll
  • Security Library
    • orannzsbb10.dll
  • OCCI Library
    • oraocci10.dll

1.建立Windows表單應用程式,建立表單,命名為Form1。
2.引用System.Data.OracleClient。
3.拷貝oci.dll、orannzsbb10.dll、oraocci10.dll、oraociei10.dll到項目中,跟Form同級。然後設定這4個dll檔案屬性“複製到輸出目錄”為“如果較新則複製”。
4.遠端連線字串,請改為自己的:Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.60)(PORT=1521))(CONNECT_DATA=(SID=orcl)));User Id=yourUID;Password=yourPWD;
5.剩下的OracleConnection什麼的就自己解決吧。

附錄
Instant Oracle Using C# by Paul Groetzner http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

C#遠端連線Oracle資料庫(不安裝用戶端)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.