我们可以在.Net 中针对 Oracle 19c 使用 System.Data.OracleClient 吗?

Posted

技术标签:

【中文标题】我们可以在.Net 中针对 Oracle 19c 使用 System.Data.OracleClient 吗?【英文标题】:Can we use System.Data.OracleClient in .Net against Oracle 19c? 【发布时间】:2021-03-08 18:22:55 【问题描述】:

所以我们将 Oracle 12.2 迁移到 19c,连接到 oracle 服务的 Asp.Net 应用程序现在失败并出现以下错误: Oracle 12560:TNS 协议适配器错误

首先,我想确认 .net dll System.Data.OracleClient 是否适用于 Oracle 19c,或者我们是否正在考虑强制迁移到 ODP.Net??

【问题讨论】:

你检查你的连接字符串了吗?当没有与该 sid 关联的本地实例时,该错误主要与连接到本地实例(使用 oracle_sid 且没有连接字符串)有关。当您的 oracle_home 和使用的驱动程序不匹配时,也会发生这种情况。您是否设置了 oracle_home 环境变量?您可能需要取消设置(通常在 Windows 中不使用) Oracle 19c 读作 Oracle 12c Release 2 (12.2.0.3),所以——基本上——你使用的代码应该可以工作。如需更多信息,请重新阅读@Andrew 所说的内容。 【参考方案1】:

主要取决于客户端版本,而不是数据库版本。

System.Data.OracleClient 命名空间不再适用于 Oracle 客户端 18c 或更高版本。如果您的应用程序(即客户端)在您的 19cdatabase 服务器上运行,那么它将不再工作。

注意,System.Data.OracleClient 驱动程序已弃用超过 10 年。

【讨论】:

【参考方案2】:

System.Data.OracleClient 需要 Oracle 客户端软件版本 8.1.7 或更高版本。 因此,如果您使用 ODP.NET v.12.X,这组 OracleClient 和 ODP.NET 将适用于 Oracle 19c。 另见Connecting to Oracle19C Server using Oracle11g client

【讨论】:

以上是关于我们可以在.Net 中针对 Oracle 19c 使用 System.Data.OracleClient 吗?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 19c Open_cursor 超出问题

Oracle 19c: RAC 集群技术的坚持与放弃(含PPT下载)

Oracle 19c 连接到 ColdFusion 2018

Vagrant 安装Oracle19c RAC测试环境的简单学习

如何在 oracle 19c 的 MERGE 语句中使用提交?

Oracle Database 19c 新特性之 ANY_VALUE 聚合函数