我有版本9.1.131.0。
我想连接到带有服务名称的Oracle 12 DB。我有登录,pw,服务器,但似乎我无法添加服务名称或端口到OracleConnectionStringBuilder
。
如何使用服务名称连接到我的数据库?
我可以用Oracle.ManagedDataAccess
实现它,但由于性能问题,我想测试Devart驱动程序是否工作得更好。
亲切的问候
试试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);
所以这是我的结论:
由于我不希望我的用户安装Oracle客户端或超过10 MB的安装包,因此Devart dotConnect Express for Oracle将无法运行。 从例外引用: "Express Edition doesn't support Direct mode. Do not use Direct parameter of connection string. Refer to dotConnect for Oracle editions matrix."
谢谢您的帮助。
亲切的问候