问题标签 [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 回答
1130 浏览

.net - ODP.NET 托管 tnsnames.ora IFILE 参考

托管 ODP.NET x64 12.1.0.2 tnsname.ora 是否支持使用 IFILE?我无法让它工作。

例如,对于我已经安装多年的普通“厚客户端”非托管 Oracle 客户端,我曾经在 tnsnames.ora 文件中包含一行:

IFILE=C:\OracleDataSources\tnsnames.MAIN

然后 C:\OracleDataSources\tnsnames.MAIN 文件包含对配置文件的 IFILE 引用,这些配置文件包含我们组织内每个其他 Oracle 实例的实际数据源定义。这有助于保持我们的配置文件集中并与安装文件分开,并且在使用完整的 Oracle 客户端安装时不会出现错误。

现在我正在升级一些使用旧的/已弃用的 System.Data.OracleClient 引用以使用 ODP.NET 托管客户端的代码。如果我尝试将 IFILE 引用与托管 ODP.NET 库一起使用,则会收到以下错误:

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

在故障排除期间,我确认没有使用该Oracle.ManagedDataAccess.Client.OracleDataSourceEnumerator.GetDataSources()方法(http://docs.oracle.com/html/B28089_01/OracleDataSourceEnumeratorClass.htm#CBAHABEH)从 tnsnames.ora 检索数据源,该方法将返回所有数据的列表从 tnsnames.ora 枚举的来源。

当 tnsnames.ora 中仅使用 IFILE 引用时,我从GetDataSources. 如果我手动将数据源别名直接添加到 web.config TNS_ADMIN 设置中指定的文件夹中的 tnsnames.ora 文件(而不是使用 IFILE 引用),那么数据源会GetDataSources正确返回,并且我可以连接到数据源成功使用 ODP.NET。

有没有办法在 ODP.NET 中使用 IFILE tns 名称引用?

0 投票
1 回答
454 浏览

c# - Oracle ODP.net 托管驱动程序找不到 Oracle.Web

我一直在使用 oracle 非托管驱动程序,现在我只是想为我的 web api 2 应用程序使用 Oracle ODP.net 托管驱动程序。

我使用 PM> Install-Package odp.net.managed 安装了它然后使“Oracle.ManagedDataAccess”本地副本为真。删除了对 Oracle.DataAccess.dll 的引用

我使用“OracleMembershipProvider”登录,当我运行我的应用程序时,它给了我以下错误。

无法加载类型“Oracle.Web.Security.OracleMembershipProvider”

0 投票
2 回答
744 浏览

oracle - 无法通过 ODP 托管驱动程序连接

我有一个 Windows 窗体应用程序,我在其中尝试使用 OracleManaged 驱动程序连接到 Oracle 11g DB,该驱动程序以异常“ORA-12154:TNS:无法解析指定的连接标识符”结束。但是,当我尝试通过 ODP.NET 64 位 dll 连接时,它正在连接(为此我确保在 x64 中构建应用程序)。下面的示例代码。如果我切换到第二个语句,我会在打开连接时收到错误消息。

有没有我缺少的设置?即使我尝试使用 manaed ODP(64 位)附带的 configure.bat

0 投票
2 回答
27208 浏览

stored-procedures - ODP.net 托管驱动程序抛出 ORA-12570:网络会话:意外的数据包读取错误

在我们的一款产品中,我们使用 ODP.net 托管驱动程序使用存储过程从 Oracle 数据库中检索数据。

时不时地(大约每 1000 个查询)我们会遇到以下异常:

似乎 ODP.net 正在使用无效的大小参数(<=0 或大于缓冲区的长度减去偏移参数的值)调用System.Net.Sockets.Socket.Receive 。

该异常不能手动重现,并且在执行具有不同参数的不同过程时永远不会引发(即它是随机的)。

配置:ODP.net 托管驱动程序版本:4.121.1.0 .net framework 4.5 Oracle 服务器版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 (Linux)

有没有人已经遇到过这个问题?有没有可用的修复程序?

提前致谢!

0 投票
2 回答
2576 浏览

.net - Oracle.ManagedDataAccess 与 Oracle 8.1.7 DB

是否可以将 Oracle.ManagedDataAccess 与 Oracle DB v.8.1.7 一起使用?我已经搜索了几个小时,但未能在任何地方找到明确的答案。

0 投票
1 回答
775 浏览

c# - 运行返回数字的查询时出现 InvalidCastException

我有一个查询...

其中real_arrival_dateplanned_arrival_date是 类型 的列date。结果days_late将是一个十进制数字,表示我们的购买迟到了多少天。

我使用 Oracle Managed Client 在 C# 中执行此操作(尽管我怀疑常规的非托管 ODP.NET 客户端也会有这个问题)。

InvalidCastException在代码中的指定位置得到一个。为什么会发生这种情况,我该如何解决?

0 投票
3 回答
3347 浏览

c# - 将记录类型从托管 ODP.NET 传递到 Oracle 过程

如果我在 PL/SQL 包中定义了一条记录,并且在同一包中定义了一个过程,是否可以在 .NET (C#) 端创建“记录”类型并使用类型 t_my_rec 将其传递给过程。我确信我可以使用 UDT(Oracle 用户定义的数据类型)来做到这一点,但由于我使用的是托管驱动程序,因此尚不支持它。

理想情况下,我想避免为表中的每个项目定义数组类型来执行批量 FORALL 插入语句。

我真的很感激帮助!

0 投票
1 回答
223 浏览

visual-studio-2012 - 在哪里存储 ODP.NET 托管驱动程序连接字符串?

最后配置了 ODP.NET 并在项目中引用了 Oracle.ManagedDataAccess DLL。

我在 WPF 项目后面的代码中使用 TNS 连接进行测试(见下文)。

这个问题可能是基本的,但我找不到任何好的信息,因为所有示例/跳转开始都显示嵌入这样的连接字符串。

是否有更好(更常见)的方法来存储 ODP.NET 的连接字符串以使其更易于维护(即它应该是一个配置更改,如果它应该更改,则不需要完全重建代码)?例如,类似于存储在 SQL Server 和 IIS 的 app.config 中?

0 投票
0 回答
154 浏览

oracle - ODP.Net 和创建数据库通知

我正在使用 ODP.net(或者更确切地说是 Oracle.ManagedDataAccess.dll)来创建更改通知。它工作正常,但是我有一个问题。它在 Windows 启动时发生。有时我的应用程序在“某事 oracle 进程”之前启动,并且创建更改通知以失败结束。我的问题应该是什么进程/服务可以确保我的应用程序可以在 oracle 数据库上创建更改通知?

0 投票
6 回答
4434 浏览

oracle - EF + ODP.NET + CLOB = 值不能为 Null - 参数名称:byteArray?

我们的项目最近更新到了较新的 Oracle.ManagedDataAccess DLL (v 4.121.2.0),这个错误一直在间歇性地出现。我们已经修复了几次,但并不知道我们做了什么来修复它。

我相当肯定这是由于 CLOB 字段被映射到实体框架中的字符串,然后在 LINQ 语句中被选中,从而拉动整个实体,而不仅仅是一组有限的属性。

错误:

堆栈跟踪:

可疑实体属性:

但我相信这是映射每个 Oracle 矩阵的字段的正确方法:

ODP.NET 类型概述

生成的 SQL 语句也没有明显错误:

根据 Ozkan 的建议,我也尝试了这个 Fluent 代码,但它似乎并没有影响我的情况。

故障排除更新:

经过广泛的测试,我们非常确定这实际上是一个错误,而不是配置问题。在一组非常特定的情况下,导致问题的似乎是 CLOB 的内容。我已经在Oracle 论坛上交叉发布了这个,希望获得更多信息。