问题标签 [system.data.oracleclient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 您可以更改默认情况下 OracleConnection 使用的提供程序吗?
我有一个应用程序使用System.Data.OracleClient.OracleConnection
(是的,我知道这是过时的)而不指定提供程序。它似乎MSDORA
默认使用。我可以更改提供程序而不在连接字符串上添加提供程序吗?例如在 app.config 文件或机器范围的设置中?
asp.net - ora-28040 没有从 Oracle 客户端 12C 到 Oracle 数据库 19c 的匹配身份验证协议
我们最近将数据库迁移到 19c。有一些使用 system.data.oracleclient 连接到 Oracle db 的 .net 应用程序。安装的Oracle客户端版本为12C。数据库升级后,.net 应用程序由于 ORA-28040 No matching authentication protocol 错误而无法连接到数据库。
c# - OracleCommandBuilder.DeriveParameters() 抛出 OracleException: ORA-06564: 对象不存在
在 .NET Framework 中使用 ADO.NET 附带的 OracleClient,我试图OracleCommandBuilder.DeriveParameters()
在数据库中的过程上调用方法,但我不断收到OracleException
消息:ORA-06564: object CustOrdersOrders does not exist
,即使我成功创建了过程。我更熟悉 SQL Server,所以也许我在这里遗漏了一些东西。
SQL
文件 1:
文件 2
这两个文件都在 SQL*Plus 中作为@"path\to\file1.sql"
.
代码
这是使用企业库数据访问应用程序块,它最终包装了 ADO.NET API。
当我使用相同的连接运行直接 SQL 查询时,它们会成功。
更多细节
这实际上是为数据访问应用程序块编写的单元测试的一部分,我在这里分叉以试图恢复这个库。这就是它使用System.Data.OracleClient
ODP.NET 而不是 ODP.NET 的原因。https://github.com/tsahi/data-access-application-block/blob/master/source/Tests/Oracle.Tests.VSTS/OracleParameterDiscoveryFixture.cs上的整套测试以类似的方式中断。
测试在我本地安装的 Oracle 数据库 XE 上运行。
更新
在@madreflection 提出问题之后,是的,以下代码运行正确:
其中“AddCountry”定义为
不过,有趣的是,在这种情况下,OracleDatabase
由db
EntlibTest
然后有另一个文件定义了这个过程的主体
c# - OracleCommandBuilder.DeriveParameters() 抛出 OracleException:ORA-06564:对象不存在 ORA-06512:在“SYS.DBMS_UTILITY”
在 .NET Framework 中使用 ADO.NET 附带的 OracleClient,我试图OracleCommandBuilder.DeriveParameters()
在数据库中的过程上调用方法,但我不断收到OracleException
消息:ORA-06564: object CustOrdersOrders does not exist
,即使我成功创建了过程。我更熟悉 SQL Server,所以也许我在这里遗漏了一些东西。
SQL
文件 1.sql:
文件 2.prc:
文件 3.prc
所有这些文件都在 SQL*Plus 中以@"path\to\file1.sql"
.
应用程序配置
代码
更多细节
这发生在我为企业库数据访问应用程序块创建的一个分支中,试图恢复这个库。这就是它使用System.Data.OracleClient
ODP.NET 而不是 ODP.NET 的原因。
测试在我本地安装的 Oracle 数据库 XE 上运行。
.net - 我们可以在.Net 中针对 Oracle 19c 使用 System.Data.OracleClient 吗?
所以我们将 Oracle 12.2 迁移到 19c,连接到 oracle 服务的 Asp.Net 应用程序现在失败并出现以下错误:Oracle 12560:TNS 协议适配器错误
在任何事情之前,我想确认.net dll System.Data.OracleClient 将适用于 Oracle 19c 还是我们正在考虑强制迁移到 ODP.Net?
c# - 将太多参数从 C# 传递到 Oracle 存储过程
我创建了一个 REST API,它将使用 80 多个键/值对来使用 json 数据。我想将这 80 多个键及其值保存在 Oracle DB 表中。现在我打算将所有 80 个参数添加为命令参数。
有没有其他方法可以做到这一点?
而在DB端,除了在存储过程中提到80个输入参数之外,还有其他方法可以同时接受这些输入参数吗?
sql - 在 PowerShell 中运行包含 PL/SQL 的 .sql 文件
我想找到一种使用 .NET Data Proider for Oracle (System.Data.OracleClient) 在 PowerShell 中运行包含 PL/SQL 的 .sql 文件的方法。我肯定会避免使用 sqlplus 来完成这项任务。
这就是我现在的位置
但我不断收到以下错误消息“ORA-00933:SQL 命令未正确结束
该文件的内容非常基本:
.net - 将 .Net 框架包装到核心:System.Data.OracleClient
背景
我目前面临的问题是我的 ASP.Net Core 5.0 应用程序突然需要使用特殊库(来自外部提供程序)与数据库进行通信。不幸的是,这个库针对的是 Framework 4.7.2。
在不久的将来将库升级到 .Net Core/Standard 是不现实的。
因此,我的想法是编写一个具有以下结构的包装器:
应用程序类型:Worker 服务 ↔ 标准库 ↔ 框架库
目标框架:.Net Core 5.0 ↔ .Net Standard 2.0 ↔ Framework 4.7.2
出于测试目的,我使用了 Worker服务而不是 ASP.Net Web 应用程序。框架库引用了上述库,该库不适用于 .Net Core。
问题
起初,我遇到了错误:
无法加载文件或程序集“System.Configuration.ConfigurationManager”</p>
但我通过在标准库中加载 NuGet 包来解决它。现在我在另一个程序集中遇到了同样的问题:
无法加载文件或程序集“System.Data.OracleClient,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”
不幸的是,OracleClient包已被弃用,标准库没有可用的 NuGet 包。因此,之前的解决方案不再有效。
尝试的解决方案
我尝试使用 Oracle.ManagedDataAccess 但无济于事。我认为选择的版本应该是兼容的,但我也试过这个(不同的组合):
- 而不是 .Net 5 → .Net 3.1
- 代替 .Net Standard 2.0 → .NetStandard 2.1
- 而不是 .Net Framework 4.7.2 → .Net Framework 4.6.1
问题
- 我错了目标框架的版本兼容吗?
- 我不明白在哪里需要加载 NuGet 包。我认为在框架库中引用它们就足够了。但在 ConfigurationManager 的情况下,我必须引用标准库中的包。
- 有没有办法使用在 .Net 5 应用程序或 .Net 标准库中引用 System.Data.OracleClient 的框架库?
我快要放弃了,但我不得不将我的 Web 应用程序降级为框架,这需要大量无用的工作。
c# - 程序使用 System.Data.OracleClient 连接到 Oracle 数据库但找不到 tnsnames
我有一个 WinForms 程序,它使用已弃用的 System.Data.OracleClient 连接到 Oracle 数据库服务器。当我尝试在另一台计算机上安装该程序时,该程序正在尝试使用文件中定义的 SID tnsnames.ora
,但找不到该文件。
我应该把tnsnames.ora
文件放在哪里,以便程序可以看到它?
quartz-scheduler - Quartz.Net:不支持连接参数:'DATABASE'
我有一个 Quartz for .Net 服务,它使用System.Data.OracleClient从 Oracle 12c 数据库中检索数据。从控制台应用程序尝试此操作时,我能够连接并获取值,但是一旦我迁移代码并将其捆绑到 Quartz 调度程序服务中,我就会收到错误
不支持连接参数:'DATABASE'
我已经在几个连接到 Sql Server 的 Quartz.net 作业上实现了这一点,没有任何问题。这个问题似乎是 Oracle 提供程序的连接字符串所特有的。
我的 Quartz 服务实现取自这里的示例:
我的连接字符串如下:
对于上下文,随附的查询操作是:
根据某些来源的建议,我尝试使用服务器而不是数据源,但我仍然遇到相同的错误: