使用服务名称Devart dotConnect Express for Oracle Connection

问题描述 投票:1回答:2

我有版本9.1.131.0

我想连接到带有服务名称的Oracle 12 DB。我有登录,pw,服务器,但似乎我无法添加服务名称或端口到OracleConnectionStringBuilder

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

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

亲切的问候

c# oracle oracle12c devart
2个回答
1
投票

试试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);

0
投票

所以这是我的结论:

由于我不希望我的用户安装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."

谢谢您的帮助。

亲切的问候

© www.soinside.com 2019 - 2024. All rights reserved.