具有服务名称的 Devart dotConnect Express for Oracle Connection

Devart dotConnect Express for Oracle Connection with service name

我有版本 9.1.131.0

我想使用服务名称连接到 Oracle 12 数据库。 我有登录名、密码、服务器,但似乎无法将服务名称或端口添加到 OracleConnectionStringBuilder

如何使用服务名称连接到我的数据库?

我可以用 Oracle.ManagedDataAccess 实现它,但由于性能问题,我想测试 Devart 驱动程序是否运行得更好。

亲切的问候

尝试 SID 而不是 Service Name。我找到了这个:Using Direct Mode

SID** System identifier (Global Database Name)

** The Service Name connection string parameter can be used instead of SID, but in the Direct Mode you can connect only to one database instance (RAC isn't supported).

对我来说这很有效:

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."

感谢您的帮助。

亲切的问候