问题标签 [odp.net]

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 投票
6 回答
21495 浏览

oracle - Oracle 11g 客户端是否需要 ODP.NET?

我可能在这里问了错误的问题,如果是这样,我愿意改变它。

我有一个使用 Microsoft.NET Oracle 提供程序的项目(我们的计划是更改为 ODP,但我们还没有这样做)。

我试图让这个项目在 Windows 2008 (x64) 构建服务器上构建。它构建得很好,但是当我们的单元测试在 Oracle 数据库上遇到问题时会失败。

我最初安装了 32 位 oracle 9i 客户端,这是我们目前在我们的 winxp 开发盒和之前的 2003 构建服务器上使用的。但是现在这会得到如下消息:尝试加载 Oracle 客户端库时抛出了 BadImageFormatException。在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时会出现此问题。

我们尝试编译到 x86 平台,但这并没有改变错误消息。

我现在安装了 11g 64 位客户端,但我收到一条消息说 System.Data.OracleClient 需要 Oracle 客户端软件版本 8.1.7 或更高版本。

那么我应该使用什么 Oracle 安装?

编辑:

我能够让它工作。原来这是导致问题的测试,通过强制 NUnit 在 32 位模式下运行:http: //geekswithblogs.net/Lance/archive/2006/12/28/102191.aspx我能够让测试工作使用旧的 32 位驱动程序。这将是一个糟糕的答案,所以我没有使用它,但很乐意将正确答案奖励给任何提供有关过渡到 Oracle 64 位驱动程序的好信息的人。

0 投票
6 回答
29487 浏览

c# - 处理 OracleCommand 参数中的空值

我正在尝试使用以下 C# 代码确定如何在 OracleCommand 中将 null 指定为参数值。我已经摘录了相关的部分,但基本上重点是如果 sal_id 的值为 0,它应该存储为 null。我已经尝试过 Null、“Null”和其他一些东西,但到目前为止还没有运气。

0 投票
2 回答
1418 浏览

oracle - 我可以通过 ODP.NET 运行任意 Oracle SQL 脚本吗?

有没有办法通过 ODP.NET 运行任意 sql 脚本?我想做这样的事情:

换句话说,我想消除对 sqlplus.exe 的需要。

0 投票
13 回答
10655 浏览

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

另请参阅System.Data.OracleClient 命名空间已终止?

(首先不要惊慌,Microsoft 尚未删除 System.Data.OracleClient,但它不在 .net 4 的客户端版本中)

通过使用 System.Data.OracleClient 可以实现此用途,但 Microsoft 已决定弃用 OracleClient。(OracleClient 是 Microsoft 为 Oracle 开发的 ADO.NET 提供程序,并作为 .NET Framework 的一部分提供。)

您可以使用 ODP.Net,但是您是否希望您的 Sql Server 客户必须安装 ODP.Net?(您希望您的任何客户都必须安装 Oracle 软件吗?)

DataDirect不是一个选项,因为它需要花费一条胳膊和一条腿;如果您需要将单个服务器连接到大型机,它可能几乎是负担得起的。然而,期望所有客户都购买它不是一种选择。

从 C# 迁移到 Java 不是一个好的选择,因为我是一名 C# 程序员并且希望能够谋生!

像大多数必须支持多个 RDBMS 的 ISV 一样,我们只需要一个允许我们使用与 SqlServer 相同的 Oracle 的小子集的解决方案。因此 System.Data.OracleClient 对我们来说已经足够强大了。

(也许我们应该开始将所有数据存储在平面文件中,这样客户的 DBA 就不会再试图告诉我们如何编写软件了。Oracle DBA 更糟糕!)


我真正的问题是如何编写与 Oracle 对话的 .NET 软件,我们可以轻松地将其安装为与 SqlServer 对话的 .NET 软件。不得不使用 ODP.NET 只会让 oracle 客户端安装更加痛苦,而且还会出错。

如果我使用的是 JAVA,我可以只使用 JDBC 类型 4 驱动程序。Microsoft 为 SqlServer 提供了一种,Oracle 为 Oracle 提供了一种。然而,甲骨文似乎希望尽可能难地使用.Net,而微软希望尽可能地使用甲骨文。


到目前为止,最好的选择看起来像devArt 的 dotConnect

然而,我开始质疑 .NET 是否是 ISV 的一个很好的开发系统,因为迟早你总会遇到需要 oracle 支持的客户。在 Java 世界中,他们似乎已经解决了这个问题。


看起来 Oracle 可能即将推出一个明智的完全托管的 ADO.NET 提供程序,它自己甚至可能很容易安装!请参阅此处声称 Beta – 2011,生产 – 2011 年底。

0 投票
4 回答
5526 浏览

.net - ODP.NET 和 ClickOnce 可能吗?

我们有一个使用 ClickOnce 部署的 sqlserver (WinForms) 应用程序,它直接与数据库对话。如果我们被迫将其移植到 oracle,ODP.NET 是否可以与 ClickOnce 一起使用。

(用户可能在他们的 PC 上没有管理员权限)

背景

每个客户站点的少数用户都使用此数据导入应用程序,它使用集成登录连接到 SQL Server。大多数用户访问系统变量是一个 Asp.net 应用程序,或一个与 Web 服务对话的 WinForms (clickOnce) 应用程序。

另请参阅“如何编写适用于 SqlServer 和 Oracle 的 .Net 应用程序

0 投票
2 回答
2017 浏览

c# - Oracle RefCursor 的参数问题

我正在使用 ODP.NET(从 Microsoft 的提供商迁移),并且我陷入了一个返回 refcursor 的存储过程。我有以下 PL/SQL 过程(我对其进行了一些更改以使其更通用):

然后我有以下 C# 代码来调用它:

当我运行它时,我不断收到这个异常:

ORA-03106: 致命的两任务通信协议错误

我尝试了许多不同的参数变体、它们的类型、顺序等,但似乎没有任何帮助。这reader.Read()是引发异常的那个。我非常感谢您对此的帮助!

补充:ret_type 定义为:

类型 ret_type 是参考光标;

0 投票
1 回答
665 浏览

xml - 如何使用 ODP 和 XML 数据集将 sysdate 插入列中?

我正在使用 Oracle 的 ODP.Net 来操作记录。

在使用 XML 方法插入和更新记录时,我遇到了一些问题。当我插入一条新记录时,我希望其中一列的值来自一个序列(MySeq.nextval)。我还想要一个 UPDATE_DATE 列来反映 sysdate。

我只见过使用完全形成的 Xml 数据集进行操作的 OracleXmlCommand 示例。我想包含一些处理时间更新。

0 投票
1 回答
2952 浏览

asp.net - 将 Oracle 11g 客户端配置为与 9i 一起使用,以便将 ODP.NET 用于 VS 2008 和 C# 或 ASP.net,出现问题

我只是在使用最新的 oracle ODP.NET 客户端以及使用它与 ASP.NET 2008 和 C# 连接到旧的 Oracle 9i 数据库时遇到一些问题。正如 ODP.NET 安装说明中所述,它应该可以工作,但是在配置 oracle 时我有点生疏。旧的 9i 客户端在 .NET 上存在问题,它根本无法正常工作,它会出现 ORA-01036:非法变量名称/编号,是否需要更新。所以我安装了 11g,运行了安装程序附带的 SQL 脚本,现在,我不太明白的棘手部分是 Network/ADMIN tnsnames.ora、sqlnet.ora 上的文件,我只是从重新启动的 9i 复制它们,似乎通过在 VS 2008 上的服务器上建立新连接它可以工作,然后让 SQlDataConnection 运行查询,测试它,我可以使用 Oracle.DataAccess.Client 查看检索到的行。例如,当涉及到在网格中检索相同的数据时,页面永远不会加载,并且它超时,某些东西不起作用......添加了对 Oracle.DataAccess 的引用,甚至尝试使用连接和命令,它给了我数据提供者内部错误(-3000)[System.String] 使用我在服务器中使用的相同连接字符串......我确信有些东西与配置 11g 客户端以使用我现有的9i 数据库。注意:系统上仍然存在 9i 客户端,Microsoft .net Oracle 提供程序根本不起作用,我宁愿不使用它,所以我想坚持使用 ODP.net 和打算使用的框架 2.0跟...共事。例如,当涉及到在网格中检索相同的数据时,页面永远不会加载,并且它超时,某些东西不起作用......添加了对 Oracle.DataAccess 的引用,甚至尝试使用连接和命令,它给了我数据提供者内部错误(-3000)[System.String] 使用我在服务器中使用的相同连接字符串......我确信有些东西与配置 11g 客户端以使用我现有的9i 数据库。注意:系统上仍然存在 9i 客户端,Microsoft .net Oracle 提供程序根本不起作用,我宁愿不使用它,所以我想坚持使用 ODP.net 和打算使用的框架 2.0跟...共事。例如,当涉及到在网格中检索相同的数据时,页面永远不会加载,并且它超时,某些东西不起作用......添加了对 Oracle.DataAccess 的引用,甚至尝试使用连接和命令,它给了我数据提供者内部错误(-3000)[System.String] 使用我在服务器中使用的相同连接字符串......我确信有些东西与配置 11g 客户端以使用我现有的9i 数据库。注意:系统上仍然存在 9i 客户端,Microsoft .net Oracle 提供程序根本不起作用,我宁愿不使用它,所以我想坚持使用 ODP.net 和打算使用的框架 2.0跟...共事。甚至尝试使用连接和命令制作一些代码,它使用我在服务器中使用的相同连接字符串给了我数据提供者内部错误(-3000)[System.String]......我确信有些东西是与配置 11g 客户端以使用我现有的 9i 数据库有关。注意:系统上仍然存在 9i 客户端,Microsoft .net Oracle 提供程序根本不起作用,我宁愿不使用它,所以我想坚持使用 ODP.net 和打算使用的框架 2.0跟...共事。甚至尝试使用连接和命令制作一些代码,它使用我在服务器中使用的相同连接字符串给了我数据提供者内部错误(-3000)[System.String]......我确信有些东西是与配置 11g 客户端以使用我现有的 9i 数据库有关。注意:系统上仍然存在 9i 客户端,Microsoft .net Oracle 提供程序根本不起作用,我宁愿不使用它,所以我想坚持使用 ODP.net 和打算使用的框架 2.0跟...共事。

我只是好奇我做错了什么,或者我如何调试并找出 Oracle 抱怨的问题。但这就像我说我不是 Oracle 的专业人士,我只是将它与预先配置的东西一起使用,并且曾经工作过使用 MS SQL 或 MySQL,在这种情况下它们似乎工作正常。

0 投票
5 回答
36971 浏览

visual-studio-2008 - 使用Oracle.DataClient时提供程序与Oracle客户端版本不兼容报错

我正在使用 Visual Studio 2008 Express Edition,并且正在尝试使用 Oracle.DataClient 开发一个小型应用程序。尝试连接到目标系统中的数据库时,出现上述错误。

我为 Oracle 10gR2 添加了对 Oracle ODP.net 提供程序的引用,并且在目标机器上我安装了 Oracle 10gR2 数据库的副本。尽管如此,我还是得到了错误。在发布之前,我在 SO 阅读了这篇文章,并且我已经安装了即时客户端,但错误仍然存​​在。下面是完整的错误堆栈。

我在开发应用程序的机器上安装了 Oracle 11g,它在那里工作正常,但在目标机器上,我收到了这个错误。任何输入将不胜感激。

PS:上面提到的Oracle.DataClient.dll文件版本对应的是10gR2,不是11g。

0 投票
3 回答
1793 浏览

oracle - 对 Oracle ODP.NET 的亚音速支持?

我是 Subsonic 的新手,主要使用 Oracle 数据库。可以对 Oracle 数据库使用 subsonic 吗?它是否支持使用 Oracle 的 ODP.NET 数据提供程序。

如果是的话,你能给我举一个很好的例子吗?

提前致谢。斯科特