.net4.0中使用ODP.net訪問Oracle數據庫(無需安裝oracle客戶端部署方法)


1、在沒有安裝oracle客戶端的設備上也能訪問服務器上的oracle (通俗的講就是:開發的應用程序 和 oracle數據庫服務器分別在兩台電腦上)
2、不需要配置TnsNames.Ora文件

開發環境 :

操作系統:win10

開發工具:VS2010

運行環境:.net 4.0

首先要下載odp.net文件,可以在這個頁面下載Oracle Data Access Components (ODAC) Downloads  (http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html),

我下載的是ODAC 11.2 Release 4 and Oracle Developer Tools for Visual Studio (11.2.0.3.0)這個版本。

ODTwithODAC112030.zip 221 MB (231,828,322 bytes)

下載完成之后先用winrar解壓,不用安裝。

然后,在ODTwithODAC112030文件夾找

 

第一個路徑: ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\  找到  filegroup2.jar 文件,

用winrar解壓 filegroup2.jar ,

解壓后 ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\filegroup2\odp.net\bin\4\

目錄中找到 Oracle.DataAccess.dll

 

第二個路徑:ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\  找到  filegroup16.jar  文件,

用winrar解壓 filegroup16.jar ,

解壓后 ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\filegroup16\bin\

目錄中找到 OraOps11w.dll

 

第三個路徑:ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles  找到  filegroup2.jar 文件,

用winrar解壓 filegroup2.jar,

解壓后 ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles\filegroup2\bin

目錄中找到 oci.dll.dbl  和  ociw32.dll.dbl ,去掉 .dbl  文件就變成了oci.dll  和 ociw32.dll

 

第四個路徑:ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles  找到  filegroup3.jar 文件,

用winrar解壓 filegroup3.jar,

解壓后 ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles\filegroup3\bin

目錄中找到 oraocci11.dll

 

第五個路徑:ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles 找到  filegroup4.jar 文件,

用winrar解壓 filegroup4.jar,

解壓后 ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles\filegroup4\instantclient\light

目錄中找到 oraociicus11.dll

 

第六個路徑:ODTwithODAC112030\stage\Components\oracle.ldap.rsf.ic\11.2.0.3.0\1\DataFiles 找到  filegroup1.jar 文件,

用winrar解壓 filegroup1.jar,

解壓后 ODTwithODAC112030\stage\Components\oracle.ldap.rsf.ic\11.2.0.3.0\1\DataFiles\filegroup1\bin

目錄中找到 orannzsbb11.dll

 

如何報下面的錯誤:

ORA-12737: Instant Client Light: unsupported server character set %s

是因為缺少 oraociei11.dll 這個動態鏈接庫。

第七個路徑:ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles 找到  filegroup3.jar 文件,

用winrar解壓 filegroup3.jar,

解壓后 ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles\filegroup3\instantclient

目錄中找到  oraociei11.dll

 

最后把這些動態鏈接庫

Oracle.DataAccess.dll 

 OraOps11w.dll  oci.dll  ociw32.dll oraocci11.dll  oraociicus11.dll orannzsbb11.dll 

oraociei11.dll

復制到項目中,C/S架構的要與exe一個文件夾,B/S架構的有專門的bin目錄。

我將這些動態鏈接庫放在壓縮包里供大家下載

odp_net_client_dll.part1.rar

odp_net_client_dll.part2.rar

 因為 oraociei11.dll 文件100多兆,無法上傳。

用VS2010(C#)新建一個項目(選擇.net framework 4.0) ,添加引用Oracle.DataAccess.dll

編碼如下:

using Oracle.DataAccess.Client;

 

            string connstring = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.123)(PORT=1521))" +
                                "(CONNECT_DATA=(SID=xe)));User Id=system;Password=test963;";
            using (OracleConnection conn = new OracleConnection(connstring))
            {
                conn.Open();
                string sql = "select * from cd_subject";
                using (OracleCommand comm = new OracleCommand(sql, conn))
                {
                    using (OracleDataReader rdr = comm.ExecuteReader())
                    {
                        DataTable dt = new DataTable();
                        dt.Load(rdr);
                        dataGridView1.DataSource = dt;
                        dataGridView1.Refresh();
                    }
                }
                conn.Close();
            }

 

實測環境

操作系統:winxp 

運行環境:.net4.0

測試了簡單的SQL語句

結果:可以正常訪問服務器上的oracle數據庫。

 

參考:http://www.cnblogs.com/netuml/archive/2013/02/28/2936642.html 

 


免責聲明!

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



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