好處:
1、不安裝客戶端也能訪問服務器上的oracle(假設Application Server與DB Server 分開)
2、不需要安裝ODAC
3、不需要配置TnsNames.Ora文件
缺點:
不能使用odac for .net中對應的工具
步驟:
如果不安裝Oracle11g的客戶端則需要在程序的debug目錄下拷貝如下幾個dll文件
oci.dll
oracle.dataaccess.dll
oraops11w.dll
oraociei11.dll
這幾個文件可以從下載的ODAC安裝包中找到,我下載的是ODTwithODAC112030.zip,由於這些文件都放在..\stage\Components\..下面的壓縮包里,所以比較難找,因此可以采用第二種方法:在安裝有ODTwithODAC112030的計算機上找到相應的安裝目錄,將目錄下面的對應文件copy出來就可以了
建議:在編碼的時候最好是安裝ODTwithODAC,在服務器上部署的時候不安裝
代碼實例:
usingOracle.DataAccess.Client; |
|
... |
stringconnstring =@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=211.80.205.213)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));User Id=sys;Password=sys;"; //這里可以放到配置文件中 |
using(OracleConnection conn = newOracleConnection(connstring)) |
{ |
|
conn.Open(); |
stringsql = "select * from users"; |
|
using(OracleCommand comm = newOracleCommand(sql, conn)) |
{ |
|
using(OracleDataReader rdr = comm.ExecuteReader()) |
{ |
|
while(rdr.Read()) |
{ |
|
Console.WriteLine(rdr.GetString(0)); |
} |
|
} |
} |
|
} |
更加復雜的odp.net與pl/sql自定義類型的實例參見http://www.cnblogs.com/KissKnife/archive/2011/04/21/2023472.html