【问题标题】:Devart dotConnect Express for Oracle Connection with service nameDevart dotConnect Express for Oracle Connection 与服务名称
【发布时间】:2017-03-22 06:21:23
【问题描述】:

我有版本9.1.131.0

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

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

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

亲切的问候

【问题讨论】:

  • 性能很可能不会改变。无论如何,你的连接字符串是什么,你得到的错误是什么?
  • 它说 {"Keyword not supported: 'service name'."} ConnectionString is: $"User ID={myCSB.UserId}; Password={myCSB.Password}; Server={host} ;服务名称={serviceName};端口=1521;"
  • 不知道 DevArt 是否支持Server, Service Name, Port。通常这是由tnsnames.ora 文件中的别名定义的。请改用Data Source
  • 现在当我打开它时抛出异常:“无法从注册表获取 Oracle 客户端信息。确保已安装 Oracle 客户端软件并且您的应用程序 (x64) 的位数与您的Oracle 客户端,或使用 Direct 模式连接服务器。”
  • 您是否检查过“您的应用程序 (x64) 的位数是否与您的 Oracle 客户端的位数相匹配”?与 DevArt 不同,Oracle.ManagedDataAccess 独立于您的应用程序的位数。

标签: c# oracle oracle12c devart


【解决方案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);

【讨论】:

  • 我也发现了这个,但是我的类 OracleConnectionStringBuilder 没有这个方法。 IDK 为什么
  • 使用泛型类DbConnectionStringBuilder
【解决方案2】:

所以这是我的结论:

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

感谢您的帮助。

亲切的问候

【讨论】:

  • 我不知道您的性能问题是什么,但是当您检查直接模式的限制的大量枚举时,您会发现其中一些肯定会降低您的性能,例如没有语句缓存或缺少对数组绑定的支持。
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
相关资源
最近更新 更多