odp.net相关内容

关闭或不关闭 Oracle 连接?

我的应用程序有性能问题,所以我开始从根本上调查这个问题:“与数据库的连接". 最佳实践说:“打开连接,使用它并尽快关闭",但我不知道这会导致开销,所以问题是: 1 -“尽快打开、使用、关闭连接是使用 ODP.NET 的最佳方法吗?" 2 - 有没有办法以及如何在 ODP.NET 中使用连接池?我正在考虑创建一个列表来存储一些连接字符串并创建一个逻辑以在每次需要时选择“最佳"连接. ..

如何编写适用于 SqlServer 和 Oracle 的 .Net 应用程序(现在不推荐使用 System.Data.OracleClient)

另请参阅 System.Data.OracleClient 命名空间已停用? (首先不要惊慌,System.Data.OracleClient 还没有被微软删除,但它不在 .net 4 的客户端版本中) 通过使用 System.Data.OracleClient,可以实现此用途,然而微软决定弃用 OracleClient.(OracleClient 是 Microsoft 为 Orac ..
发布时间:2022-01-23 22:02:36 C#/.NET

使用 ODP.NET 按名称绑定查询参数

我目前正在使用适用于 Oracle 的 Microsoft ADO.NET 提供程序 (System.Data.OracleClient).我知道它肯定不是最好的 Oracle 提供程序,它 很快就会被弃用,我应该改用 Oracle 的 ODP.NET.我仍然使用 MS 提供程序的原因是因为 ODP.NET 按位置绑定参数,而不是按名称.当您在查询中使用许多参数时,这确实是一个 PITA,因为您必 ..
发布时间:2022-01-23 21:43:45 C#/.NET

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

我们的项目最近更新到较新的 Oracle.ManagedDataAccess DLL (v 4.121.2.0),并且此错误一直在间歇性地出现.我们已经修复了几次,但并不真正知道我们做了什么来修复它. 我相当肯定这是由于 CLOB 字段被映射到实体框架中的字符串,然后在 LINQ 语句中被选中,从而拉动整个实体,而不仅仅是一组有限的属性. 错误: 值不能为空.参数名称:字节数组 堆 ..

Entity Framework 6 (5) 与 Oracle 的连接

我正在尝试为我们在 .net 中使用 Oracle 的应用程序套件编写数据访问库.我们目前使用 NHibernate,并且正在考虑迁移,因为它似乎没有得到很好的支持. 我正在使用 Visual Studio 2013,我们已经构建了我们的 Oracle 数据库.我们没有写来更新它(那是 db 家伙的领域).因此,这不会成为我们任何计算的一部分. 服务器上的客户端是 32 位的,所以我们 ..
发布时间:2022-01-20 10:58:28 其他开发

使用Oracle.DataClient时provider与Oracle客户端版本不兼容报错

我使用的是 Visual Studio 2008 Express Edition,并且正在尝试使用 Oracle.DataClient 开发一个小型应用程序.尝试连接到目标系统中的数据库时,出现上述错误. 我为 Oracle 10gR2 添加了对 Oracle ODP.net 提供程序的引用,并且在目标机器中我安装了 Oracle 10gR2 数据库的副本.尽管如此,我还是收到了错误消息.在 ..
发布时间:2022-01-05 19:41:21 数据库

如何在连接错误时清除 ODP.NET 连接池?

我使用 NHibernate 和 ODP.NET 连接到 Oracle 11g 数据库.当然,可能存在连接错误(网络故障、DB 宕机……).我在我的代码中处理所有这些异常,所以没问题.但是当然用户可以重试他的操作(也许只是短暂的网络故障),这就是我的问题: ODP.NET 默认使用连接池.通常没有问题,但是当用户在连接错误后重试操作时,NHibernate 会从 ODP.NET 获取无效(池 ..
发布时间:2022-01-02 16:02:41 数据库

Entity Framework 6 (5) 连接Oracle

我正在尝试为我们在 .net 中使用 Oracle 的应用程序套件编写数据访问库.我们目前使用 NHibernate,并且正在考虑迁移,因为它似乎没有得到很好的支持. 我正在使用 Visual Studio 2013,我们已经构建了我们的 Oracle 数据库.我们没有写入来更新它(这是数据库人员的域).所以这不会成为我们最终计算的一部分. 服务器上的客户端是 32 位的,所以我们现在 ..
发布时间:2021-12-31 13:47:45 其他开发

将 System.Data.OracleClient 替换为 Oracle.DataAccess (ODP.NET)

我有一个项目目前正在使用 System.Data.OracleClient,由于它已被弃用,所以我想切换到 Oracle 11g 的 ODP.NET 最新版本.请让我知道以下步骤是否适用于我,或者需要采取某些其他措施才能使其正常工作而不会出现任何错误: 删除对 SYStem.Data.OracleClient 的引用 添加对 Oracle.DataAccess dll 的引用 用 Ora ..
发布时间:2021-12-30 14:19:34 C#/.NET

odp.net 可以将参数传递给布尔 pl/sql 参数吗?

是否可以在 pl/sql 存储过程中将 OracleParameter 正确传递给布尔参数? 解决方案 您不能在 SQL 中使用布尔参数.所以调用一个接受或返回一个布尔值的存储过程在 SQL 中不起作用.在 pl/sql 块中使用这样的过程没有问题. 从 JCallico 回答中添加: 我使用以下解决方法绕过此限制: 使用匿名块包装函数调用. 返回一个包含 1 或 0 ..
发布时间:2021-12-30 13:39:12 C#/.NET

可以将 oracle 11g 客户端与 10g 服务器一起使用吗?

我正在创建一个使用 odp.net 的 .NET 程序,特别是 11g 版本.我们的 oracle 服务器运行的是 10g.我在开发过程中为时已晚,无法进行更改.我会遇到麻烦吗?您有在 10g 服务器上运行 11g 客户端的经验吗? 解决方案 您可以将 odp.net 11 与 Oracle 服务器 9、10 和 11 一起使用.是的,我已经尝试了所有这些组合. 例如,您可以使用 o ..
发布时间:2021-12-30 13:38:11 数据库

Oracle.DataAccess.Client 依赖项

首先,我想使用Oracle.DataAccess.dll来使用OracleBulkCopy. 我想知道我需要能够从数据库读取然后在 Oracle 中执行批量复制的所有 dll.目前,我们只使用一个 dll 来执行从数据库的所有读取,我们使用 Oracle.ManagedDataAccess.Client.但我不能用它来执行批量复制. 我不想为用户安装ODP.NET,我想直接在程序中包含 ..
发布时间:2021-12-25 16:11:49 C#/.NET

Oracle.ManagedDataAccess.dll 中的 OracleBulkCopy 类?

我参考 Oracle.DataAccess.dll 使用 OracleBulkCopy 类.我想使用 Oracle.ManagedDataAccess.dll 进行轻松部署.但是后来我收到了构建错误“未找到 OracleBulkCopy" 有谁知道为什么 OracleBulkCopy 不包含在 Oracle.ManagedDataAccess.dll 中? 解决方案 你说得对.在撰写 ..
发布时间:2021-12-25 08:31:50 C#/.NET

从 C# 中的 PL/SQL 匿名块返回游标

我正在将现有应用程序从 SQL Server 转换为 Oracle,但遇到了障碍.我正在尝试将匿名块作为动态 SQL 执行并返回结果集.但是,我尝试过的任何内容似乎都无法返回任何值.由于设计限制,存储过程已过时. 我的查询定义为: DECLARE type id_array IS TABLE OF number;t_Ids id_array;开始更新 CSM_RECORDS SET MIG ..
发布时间:2021-12-24 16:35:26 C#/.NET

如何使用来自 C# ODP.NET 的 Oracle Ref Cursor 作为返回值参数,而不使用存储函数或过程?

我需要帮助了解我是否尝试使用 Ref Cursor 作为多个记录/值的返回值参数的方式,PL/SQL 只是 OracleCommand 对象的 CommandText 而不是存储过程或函数, 甚至是可能的. 如果这是不可能的,我想要做的是找到一种方法来发出 PL/SQL 语句,该语句将更新未知数量的记录(取决于与 WHERE 子句匹配的记录数),并返回 Id在 OracleDataReade ..
发布时间:2021-12-24 16:15:46 C#/.NET