2
有沒有連接到Oracle數據庫而沒有安裝oracle客戶端或使用tnsname的方法?該應用程序需要在客戶機上部署,因此希望它是獨立的。如何在沒有oracle客戶端或tnsname的情況下連接到ORACLE數據庫
有沒有連接到Oracle數據庫而沒有安裝oracle客戶端或使用tnsname的方法?該應用程序需要在客戶機上部署,因此希望它是獨立的。如何在沒有oracle客戶端或tnsname的情況下連接到ORACLE數據庫
爲了闡明我的意見,可以使用Oracle提供的託管ODP.net,這不需要客戶端計算機安裝任何Oracle客戶端/驅動程序。對於無法控制安裝在目標機器上的軟件的Windows或控制檯應用程序,它非常適用。
要下載的管理客戶端,您可以使用該庫包管理器(https://www.nuget.org/packages/odp.net.managed/)的NuGet得到它:
PM> Install-Package odp.net.managed
至於TNSNAMES(因爲這也是一個客戶的依賴),如果你使用Oracle的EZ Connect,您可以完全繞過TNSname。要做到這一點,只需將數據源的格式設置爲server-name:port/sid
即可。自從可用後,我實際上完全停止使用TNSname。
這裏是你如何能做到這與託管ODP.net一個例子:
OracleConnectionStringBuilder sb = new OracleConnectionStringBuilder();
sb.DataSource = "MyOracle.MyCompany.com:1521/MySid"; // EZ Connect -- no TNS Names!
sb.UserID = "luke";
sb.Password = "Jedi4Eva";
OracleConnection conn = new OracleConnection(sb.ToString());
conn.Open();
OracleCommand cmd = new OracleCommand("select * from dual", conn);
object o = cmd.ExecuteScalar();
conn.Close();
我不會去儘可能說這是不可能的,但每個人都會安裝做這種類型的部署中,任何你不想安裝依賴關係的特殊原因? –
使用Oracle的* Managed * ODP.net。它消除了本地客戶端的依賴關係,但是在缺點方面,您將無法訪問OCI的許多高級功能,如批量插入和更新 – Hambone