我有版本9.1.131.0。Devart dotConnect Express for Oracle連接服務名稱
我想連接到帶有服務名稱的Oracle 12數據庫。 我有登錄,密碼,服務器,但似乎我不能將服務名稱或端口添加到OracleConnectionStringBuilder。
如何連接到我的數據庫與服務名稱?
我可以使它與Oracle.ManagedDataAccess發生,但由於性能問題,我想測試如果Devart驅動程序工作得更好。
親切的問候
我有版本9.1.131.0。Devart dotConnect Express for Oracle連接服務名稱
我想連接到帶有服務名稱的Oracle 12數據庫。 我有登錄,密碼,服務器,但似乎我不能將服務名稱或端口添加到OracleConnectionStringBuilder。
如何連接到我的數據庫與服務名稱?
我可以使它與Oracle.ManagedDataAccess發生,但由於性能問題,我想測試如果Devart驅動程序工作得更好。
親切的問候
所以這是我的結論:
因爲我不希望我的用戶安裝Oracle客戶端或安裝包超過10 MB,則Devart dotConnect Express的甲骨文將無法正常工作。從異常
報價:
"Express Edition doesn't support Direct mode. Do not use Direct parameter of connection string. Refer to dotConnect for Oracle editions matrix."
感謝您的幫助。
親切的問候
我不知道你的性能問題是什麼,但是當你檢查直接模式的大量限制時,你會發現其中的幾個肯定會降低你的性能,例如沒有語句緩存或缺少對數組綁定的支持。 –
嘗試SID
代替Service Name
。我發現這一個:Using Direct Mode
SID **系統標識符(全局數據庫名)
**服務名稱連接字符串參數可以用來代替SID,但在直接模式下,您只能連接到一個數據庫實例(不支持RAC)。
對於我這樣工作的:
var str = new DbConnectionStringBuilder(false);
str.Add("Data Source", db);
str.Add("User ID", user);
str.Add("Password", pw);
var con = new Devart.Data.Oracle.OracleConnection(str.ConnectionString);
con.Open();
你也可以把完整的連接字符串作爲數據源,而不是檢索別名從tnsnames.ora
文件,例如
string db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={serviceName})))";
str.Add("Data Source", db);
我也發現了這個,但是我的類OracleConnectionStringBuilder沒有這個方法。IDK爲什麼 – k4yaman
使用泛型類[DbConnectionStringBuilder](https://msdn.microsoft.com/en-us/library/system.data.common.dbconnectionstringbuilder(v = vs.110).aspx) –
最有可能的表現不會改變。無論如何,你的連接字符串是什麼,你得到的錯誤是什麼? –
它說{「關鍵字不支持:'服務名稱'。」} ConnectionString是:$「User ID = {myCSB.UserId}; Password = {myCSB.Password}; Server = {host}; Service Name = { serviceName}; Port = 1521;「 – k4yaman
我不知道DevArt是否支持'Server,Service Name,Port'。通常這是由'tnsnames.ora'文件中的別名定義的。改用'Data Source'。 –