问题标签 [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 投票
3 回答
2384 浏览

.net - 在 Oracle 中解析 CSV(逗号分隔值)

我想使用逗号分隔的字符串将一组记录标识符传递给 Oracle 过程。我想把它放到一个临时表中,然后在进一步处理中加入它。我该怎么办?

比 CSV 更好的方法也会很高兴听到。我正在使用 ODP.Net 进行数据访问。

0 投票
4 回答
29977 浏览

oracle - 在oracle中将字符串转换为整数

我正在尝试将 Oracle(版本 8i)中的一列字符串解析为整数。

我正在通过 Oracle.DataAccess 库访问结果

我已经使用TO_NUMBER掩码将字符串转换为没有小数位的数字。问题是客户端代码中的值被检索为十进制而不是整数。

0 投票
7 回答
155646 浏览

odp.net - 'Oracle.DataAccess.Client.OracleConnection' 的类型初始化程序引发异常

我开发了一个使用 Oracle Data Provider for .NET 的应用程序。我将应用程序文件 (.exe) 和 ODP 库 (Oracle.DataAccess.dll) 复制到另一台未安装 Oracle 客户端和 ODP.NET 的计算机上。当我运行应用程序时,我收到错误消息:“Oracle.DataAccess.Client.OracleConnection”的类型初始化程序引发了异常。

我是否必须在要运行我的应用程序的计算机上安装 ODP.NET 和 Oracle 客户端?如果是,是否有其他方式我不必安装它们但仍然可以运行我的应用程序?

谢谢

0 投票
4 回答
29693 浏览

oracle - 使用 Oracle 客户端 11 部署 .NET 应用程序所需的最低设置是什么?

能够部署与 Oracle 数据库通信的 .NET 应用程序所需的最小设置是什么?

0 投票
2 回答
2438 浏览

oracle - Oracle:批量调用多个过程

我需要在事务中连续调用 Oracle 包中的多个不同过程。事实上,我需要调用他们大约 5000 次。我想知道我可以使用什么语法来批处理这些对 Oracle 的调用,所以我只需要一次往返。我试过了

但我回来了 ORA00900:无效的 SQL 语句。

任何指针?我知道将参数数组传递给过程,但不幸的是,在这种情况下这并没有多大帮助。

0 投票
3 回答
4927 浏览

c# - 使用引用游标作为 ODP.NET 的输入类型

我正在尝试使用 aRefCursor作为 Oracle 存储过程的输入参数。这个想法是选择一组记录,将它们输入存储过程,然后 SP 循环输入RefCursor,对其记录进行一些操作。不,我不能选择 SP 内的记录,因此避免了使用RefCursor作为输入类型。

我在 Oracle 的文档中找到了一个关于如何执行此操作的示例(这将是链接,但似乎我还不能使用它们),但它使用一个简单SELECT的方法来填充输入RefCursor;这就是问题所在:我必须从代​​码中填充它。

你看,在代码中我有这个:

而且,我尝试用 a , a ,甚至是一个普通的数组来填充光标,但没有任何效果。当我尝试运行测试时,出现错误:List<T>DataTableMyObject

“无效的参数链接”

也许不是确切的措辞,因为我是从西班牙语翻译的,但这就是信息

有任何想法吗?

0 投票
1 回答
253 浏览

asp.net - Oracle ODP.NET 和双击超链接

我已经安装了 ODP.NET,并且正在通过 Oracle 为 ASP.NET 网站使用会话状态服务。我测试了它,我想,非常彻底,没有发现任何重大问题。一些用户在使用系统时一直抱怨异常错误。我添加了一些额外的日志记录,并找出了如何重现该问题。当用户双击超链接时会发生这种情况。我以前从未想过双击超链接,也不知道用户喜欢这样做,所以我没有测试过这种可能性。这会发送 2 个相同的请求以保存具有相同主键的会话项。我将 ODP.NET 11.1.0 用于 .NET 2.0 框架,并且被调用的函数已被 Oracle 混淆,所以我无法在那里修复它。有没有其他人有这个问题?除了告诉用户您不要双击超链接之外,有谁知道解决方案。

0 投票
1 回答
1972 浏览

c# - 我可以对 Oracle Instant Client 和 ODP.NET 使用加密连接吗?

我们目前通过 odbc 使用完全安装的 oracle 客户端和 ado.net 来建立到 oracle 数据库的 sql*net 加密连接。

我的问题是我们是否也可以使用即时客户端和 odp.net 而不是完整客户端和 odbc 实现加密连接?

提前致谢!

0 投票
3 回答
17231 浏览

c# - 填充数据集时 ODP.net Oracle 十进制数精度问题。例外:算术运算导致溢出

我正在使用 c# .net 2 (Visual Studio 2005 SP1) 尝试使用来自 Oracle10g 数据库中的 select * from 表的结果填充数据集。无法在此客户端站点更改.net 框架、IDE 和数据库。

我正在使用ODP.net 提供程序连接,dll 版本是2.102.2.20

当我运行填充命令时,我得到一个异常:

算术运算导致溢出

此外,如果我尝试在 Visual Studio 设计器(显示表数据)中查看有问题的列,我会得到对于表中该列的每一行。如果我的查询选择其他具有整数的列,例如省略此列,则该代码将完美运行。

当我从 Toad 在数据库中查看有问题的列时,它看起来很好,数据如下所示:

919.742866695572

我需要精度,因为它是蒙特卡罗模拟所需的。

如果我不使用数据适配器来填充数据表,而是使用数据读取器并调用 dataReader.getValue(columnIndex) 我会得到相同的错误,但是如果我调用 dataReader.GetOracleDecimal(columnIndex) 那么我会得到我正在寻找的结果,没有错误.

我宁愿使用数据适配器并填充数据集(注意这些是无类型数据集,因为我无法从 oracle db 中获取自动生成的强类型数据集)。我不想使用 datareader 并遍历结果(选择列值),因为我试图将其编写为适用于许多场景的通用方法,无论列数如何,十进制列的索引需要特定按数据类型获取调用。

任何人都可以帮忙吗?我可以使用新版本的 ODP.net dll 连接到旧的Oracle10g数据库吗?我想知道这是否会有所帮助。

谢谢

0 投票
3 回答
15970 浏览

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

我目前正在为 Oracle ( System.Data.OracleClient) 使用 Microsoft ADO.NET 提供程序。我知道它肯定不是最好的 Oracle 提供程序,而且很快就会被弃用,我应该改用 Oracle 的 ODP.NET。我仍然使用 MS 提供程序的原因是因为ODP.NET 按位置绑定参数,而不是按名称。当您在查询中使用许多参数时,这确实是一个 PITA,因为您必须小心以正确的顺序添加它们,这很容易导致错误。当您在同一个查询中多次使用相同的参数时,这也很烦人,例如:

使用 ODP.NET,我必须向 中添加两个参数OracleCommand,我认为这很愚蠢......

ODP.NETOracleCommand具有更改该默认行为的属性:BindByName. 当设置为true时,参数由名称绑定,这就是我想要的。不幸的是,这并没有真正帮助我,因为:

  • 默认设置为 false
  • 我几乎从不明确使用具体的 ADO.NET 类,我更喜欢使用 ADO.NET 2.0 抽象层(、、、DbProviderFactory... DbConnectionDbCommand来减少与任何特定 RDBMS 的耦合。因此,除非我明确地转换为 ,否则我无权访问该BindByName属性,从而OracleCommand失去所有好处或抽象。
  • 使用 ASP.NET SqlDataSource 时,我自己不创建 DbCommand,因此我没有机会设置BindByName为 true(我可以在 Selecting 事件中执行此操作,但为每个执行此操作确实很痛苦SqlDataSource...)

我应该如何处理这个问题?BindByNameByDefault某处有设置吗?(我没有找到类似的东西,但我可能错过了......)