问题标签 [odp.net-managed]

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.

0 投票
1 回答
1009 浏览

powershell - 如何在 Powershell 中向 ODP.Net Managed Driver 添加配置选项

使用 Powershell 中的 Oracle Managed Data Provider ODP.NET 效果很好。但是,如何添加应用程序特定的配置设置还不是很清楚。

如何才能做到这一点?

0 投票
0 回答
2688 浏览

c# - 使用 ODP.Net 托管客户端将对象数组传递给 oracle 存储过程

我的 Web API 中有以下 Employee 类。

我的 Web API 收到每个请求的 50 条员工记录列表,它需要更新 Oracle 数据库中的这些详细信息。

我遵循将整数数组传递给 Oracle 存储过程的相同方法,并尝试了以下方法。

在 Oracle 中创建了以下类型和存储过程。

--基本类型

- 包裹

--包体

以下是来自 Web API 的代码。

当我尝试这个时,我得到错误“值不在预期范围内”。在下一行。param1.Value = EmpList.ToArray();

我看到我需要在这里做更多工作才能让它发挥作用。

我搜索了类似的主题,但找不到托管客户端的任何主题。我知道有一种使用旧 Oracle.DataAccess.dll 的方法,但想知道是否有使用最新托管客户端的方法。

0 投票
3 回答
749 浏览

oracle - 对 PUBLIC 数据库链接表的托管 ODP.NET 调用导致 TNS 错误

我们的应用程序使用托管的 ODP.NET 代码来调用各种 Oracle 过程。

对于我们的一位使用公共数据库链接并在过程中引用链接表的客户,该调用失败。经过进一步测试,任何通过 ODP.NET 对链接表运行查询的尝试都会失败。

ORA-12154: TNS: 无法解析指定的连接标识符

全栈:

这很奇怪,因为尝试使用 SQL PLUS 进行相同的查询会成功,即使客户端计算机上没有 TNS 名称或文件

我们的应用程序甚至不使用 TNS 名称,它使用显式连接字符串详细信息。

我们甚至通过 DevArt oracle 驱动程序运行了测试查询,它们也很成功。

就好像专门通过托管 ODP.NET 进行调用使服务器以不同的方式对待数据库链接。

我们现在使用的测试查询是一个简单的 SELECT 语句

有谁知道我们如何让 ODP.NET 像 SQL Plus 一样将这些信息推迟到服务器上?

数据库链接信息:

0 投票
2 回答
761 浏览

c# - 使用 INSERT...RETURNING 子句导致 ORA-12537

问题很简单,如问题主题中所述。我尝试使用INSERT...RETURNING子句运行一些查询,当我尝试执行它时会引发 ORA-12537 异常。来源如下:

最后一行的执行导致 OracleException 被 message 引发ORA-12537: Network Session: End of fileRETURNING在没有子句的情况下运行相同的查询显然很顺利。

0 投票
1 回答
1723 浏览

asp.net - Oracle 存储过程将光标缓慢返回到 C#,在 TOAD 上快速返回

我们使用 asp.net mvc 作为 Web 应用程序,使用 oracle 12C 作为数据库,'Oracle.DataAccess.Client'(12.1.0,64 位版本)用于连接到 Oracle 数据库,我们的 asp.net MVC 应用程序在 64 位机器上运行也是。

我们的一个存储过程返回一个游标作为输出参数。

现在,当我们在 TOAD 或 SQL Developer 上执行相同的存储过程时,只需不到一秒的时间,但当 C# 执行相同的存储过程时,大约需要 35 秒..!!! 返回。TOAD、SQL Developer 和 asp.net iis 服务器都在我的本地机器上,而 Oracle 服务器在不同的机器上。

在 C# 中,我记录了各种时间,例如打开连接需要多长时间、C# 调用存储过程的时间戳以及完成和返回的时间、将 DataSet 转换为 C# List 需要多长时间。观察所有时间后,我们看到以下语句需要 35 秒

我们认为这可能是网络问题,如果是这种情况,toad 和 sql 开发人员也应该花费相同的时间,所以网络不是问题。

我们尝试了什么:我唯一怀疑的是 ODP.NET 驱动程序,因此删除了所有 oracle 客户端并重新安装它们,没有用。

现在想看看我是否必须在 sqlnet.ora 或 tns 文件连接上配置一些东西?但找不到任何...

这是完整的代码

公共数据表 GetDataTable(string psStoredProcedure) { LogInfo(psStoredProcedure);

以下是 PL/SQL In 存储过程:

0 投票
1 回答
516 浏览

odp.net - 在多个 IP 地址上进行故障转移

在客户端开发了一个使用 ODP.NET 访问 oracle 12c 数据库服务器的应用程序。我在客户端和服务器上都有 2 个网络适配器。服务器正在不同端口上的两个网络轨道上进行侦听。

如果我从服务器端拉出一根网线,客户端大约需要 21 秒才能将其故障转移到另一个网络轨道,以便与数据库通信。我该如何加快速度?我使用了 TCP.CONNECT_TIMEOUT、TRANSPORT_CONNECT_TIMEOUT 和 CONNECTION_TIMEOUT,但似乎没有任何应用。我已经在 sqlnet.ora 和应用程序级别应用了 TCP.CONNECT_TIMEOUT,但没有任何效果。TNSPING 和 sqlplus 工作正常,并根据指定的超时进行故障转移。

看起来 OPD.NET 并没有尊重描述部分中的很多东西。出于好奇,我测试了其他的东西,比如把 FAILOVER=off ,它仍然失败了。我还将描述部分放在“数据源”标签下的连接字符串中。依然没有。ODP.NET 中是否存在错误?

请帮忙。-大卫


客户:


sqlnet.ora 和 app.config 中的设置:


跟踪文件的摘录:

0 投票
0 回答
379 浏览

c# - 从 ODP.NET 调用 Oracle 存储过程失败

我有一个相当大且复杂的 Oracle 存储过程(约 2200 行),我可以从 SQL Developer 成功调用它,并使用以下命令在 2-3 秒内执行:

但是,当我从 ODP.NET 调用它时,它会引发以下异常:

调用存储过程的方式相当简单:

从 ODP.NET 调用时,似乎临时空间很快用完,达到 5gb 限制,然后在无法增加空间的地方抛出异常。

但是,如果它是存储过程的问题,为什么它可以从 SQL Developer 成功执行而没有错误(并且内存使用量显着降低)?

0 投票
1 回答
1022 浏览

oracle - Oracle ODP.NET 托管驱动程序和连接池问题

我知道这应该是 Oracle 的一个问题,但是https://community.oracle.com中已经有四个线程在问同样的问题,但他们没有得到答案。也许stackoverflow中的某个人可以帮助我,因为我们遇到了托管驱动程序的大量问题。我们希望这个社区的人能知道答案。

在从 11 非托管迁移到 12c 托管驱动程序(来自 Nuget 的 4.121.2.0)后,我们的系统从 Oracle 获得异常。这是调用堆栈:

我们做了一些测试,似乎池工作不正常。据我们所知,即使您保持系统运行而不做任何事情,来自池的连接也会中断。发生这种情况时,系统将无法再工作,因为没有可以使用的连接。似乎连接无效,但驱动程序没有回收它们。在这种情况下,我们需要终止该进程。由于这是作为服务工作的业务服务器,因此这是一个主要问题。

与以前的非托管驱动程序相同的软件根本没有问题,因此它与池的大小或未处理的连接无关(正如我所说,我们可以在几乎不询问系统的情况下重现该问题)。

你们有没有人听说过类似的事情,可以请帮助我们吗?非常感谢您的任何提示。

0 投票
0 回答
366 浏览

c# - ODP.NET 没有使用 .net 别名

我正在开发一个新的 mvc Web 应用程序,并且正在尝试配置与 Oracle 数据库的连接。我已经安装Oracle.ManagedDataAccessOracle.ManagedDataAccess.EntityFramework软件包。我已经更新了 web.config 中的连接字符串和数据源(如下)。现在,当我尝试测试连接时,我进入服务器资源管理器中的修改连接,我会自动得到oracleDBsource is not found in the available list of aliases.如果我去C:\Program Files (x86)\Oracle Developer Tools for VS2017\network\admin\tnsnames.ora编辑该文件并将其添加到那里,那么它就可以正常使用。

为什么没有在 web.config 中提取别名的任何想法?

0 投票
2 回答
2268 浏览

oracle - “测试连接成功”但“ODP.NET 托管驱动程序中发生意外错误”

我想从 Visual Studio 2015 Enterprise Update 3 连接 Oracle。安装 ODT For Visual Studio 2015 后,添加与数据提供程序 Oracle 数据库(ODP.NET 托管驱动程序)弹出窗口的新连接似乎很奇怪,即使连接字符串为空,测试连接也会成功 -添加了 ss- 并且当按下 ok 时,会发生意外错误。

64位机器,卸载ODAC,修复Visual Studio 2015,安装ODT for vs 2015。

谢谢并恭祝安康,

错误