问题标签 [oracle-manageddataaccess]

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 投票
0 回答
861 浏览

c# - 没有为 Visual Studio 2019 的 Oracle.ManagedDataAccess.Client 错误安装 DDEX 提供程序

安装 Visual Studio 2019 后,我尝试在 .edmx 文件中更新我的模型我有这个弹出窗口(我使用 EntityFrameWork 6 和 oracle 数据库)

在此处输入图像描述

0 投票
1 回答
5569 浏览

c# - Entity Framework Core - Take(1)、Single()、First()...不使用 Oracle Provider (ORA-00933: SQL 命令未正确结束)

我在 oracle 数据库中使用 ef core(2.2.4)

oracleProvider:Oracle.EntityFrameworkCore(2.18.0-beta3)

这段代码:

生成这个数据库查询:

运行查询给我这个错误:

有什么办法可以解决吗?正确的方法是获得第一行

AND 行数 = 1

不是

仅获取前 1 行

和 .ToList() 与 IQueryable 一起工作正常

0 投票
0 回答
219 浏览

.net - Oracle.ManagedDataAccess nuget 包性能

我正在尝试使用Oracle.ManagedDataAccess块包。在网站上它说:ODP.NET,Managed Driver 是 100% 本机 .NET 代码驱动程序。无需安装额外的 Oracle 客户端软件即可连接到 Oracle 数据库。

我想知道他们是否在实际驱动程序周围使用了一些包装器,这允许它在不安装 Oracle 客户端的情况下工作,但由于完全相同的原因,它可能会很慢,因为它可能无法使用本机驱动程序。

本机驱动程序是用 C 语言构建的,预计会快速点亮。我只是在这里做假设。

0 投票
1 回答
1556 浏览

c# - 将 TransactionScope 与 OracleManagedDataAccess 一起使用会引发 System.PlatformNotSupportedException:“此平台不支持操作。”

我可以通过尝试在一个相同的连接中打开 2 个连接来成功重现这一点TransactionScope(即使第一个连接在打开下一个连接之前也已关闭),如下所示:

实际上,我正在尝试利用为我的存储库TransactionScope实现某种类型的Ambient transaction存储库(每个存储库都使用一个相同的连接字符串打开自己的连接)。上面的代码尽可能地简化以帮助重现异常。

TransactionScope我不太确定我做错了什么或者OracleManagedDataAccess至少在.NET Standard. 我的项目针对 .NET Standard 2.0 (lib) 和 .NET Core (app) 2.2,OracleManagedDataAccess通过 nuget 安装(当然针对 .NET Standard)并且版本为2.19.3.

这是上面发布的异常的堆栈跟踪:

在 OracleInternal.MTS.MTSRMManager.CCPEnlistTransaction(OracleConnectionImpl connImpl, Transaction transaction, MTSTxnRM txnRM.PoolManager`OracleInBranchConnectionPx) 上的 OracleInternal.MTS.MTSRMManager.CCPEnlistDistributedTxnToSysTxn(OracleConnectionImpl connImpl, Transaction txn, MTSTxnRM txnRM, MTSTxnBranch
txnBranch
) .GetEnlisted(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, OracleConnection connRefForCriteria)
在 OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securePassword, SecureString secureProxyPassword, OracleConnection connRefForCriteria)
在 Oracle.ManagedDataAccess.Client.OracleConnection。打开()

我有一种感觉,这是一个非常棘手的问题,几乎取决于OracleManagedDataAccess. 如果我不能使用TransactionScope,将没有简单的方法来实现Ambient transaction

0 投票
1 回答
333 浏览

.net - OracleDataReader InvalidCastException:.NET 中的十进制类型上的“指定强制转换无效”

当使用Oracle.ManagedDataAccess.Client.OracleDataReader然后调用reader.GetValue(i)时,我们得到了上面的异常。

这可以使用这个查询来模拟:

当 oracle 数据是 Oracle 类型Decimal,并且数据中的精度超过 .NET 小数点中的小数位数时,就会出现问题。主要问题是这样reader.GetValue(i)做,因此您无法控制它在内部引发此错误的事实。

我实际上有一个解决方法,我将把它作为答案发布,因为我过去曾多次遇到过这个问题,而网络还没有一个好的答案。

有关的:

https://community.oracle.com/thread/4017980

从 OracleDataAdapter.Fill() 填充 DataTable 时“指定的转换无效”

0 投票
1 回答
835 浏览

c# - {"ORA-06502: PL/SQL: 数字或值错误: 字符到数字的转换错误\nORA-06512: 在第 1 行"}

我有一个用于将存储过程错误记录到 Oracle 数据库的文件,但在执行存储过程时出现错误

ORA-06502:PL/SQL:数字或值错误:字符到数字的转换错误
ORA-06512:在第 1 行

之前我使用的是 Microsoft 企业日志记录,但现在我使用的是oracle.managed.dataaccess. 我的代码如下所示。

如何在我的新代码中解决这部分 false, (byte)0, (byte)0, (string)null, DataRowVersion.Default ?

0 投票
0 回答
253 浏览

c# - {“输入字符串的格式不正确。”}:oracle 存储过程错误

存储过程

logging.cs 文件

我收到错误

logEntry.abcd2 的值为 0x000000000 并且我的表中的优先级不为空。如何解决这个错误?请帮忙 。任何线索都会有所帮助。

0 投票
1 回答
355 浏览

.net - 通过 tnsnames.ora 连接到 Oracle 托管数据访问

实际上,我们的解决方案适用于过时的非托管(?)Oracle .NET 提供程序Oracle.DataAccess.dll,它使用计算机的tnsnames.ora文件。

我们想更新它并改用 Oracle 托管 dll(通过最新版本的 Oracle.ManagedDataAccess nuget)。

我们在应用程序中web.config有一个键,它指示tnsnames要使用的源。

对我来说有点模糊的是,在安装托管 nuget 并删除旧的之后实际上有什么变化Oracle.DataAccess.dll......

0 投票
1 回答
358 浏览

oracle - 具有不变名称“Oracle.ManagedDataAccess.Client”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册

突然跑不动了

add-migration a -ProjectName MyProject.Model -ConnectionString "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=1.1.1.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=mydb)));Persist Security Info=True;User Id=myuser;Password=xxxx;" -ConnectionProviderName "Oracle.ManagedDataAccess.Client"

不再,它给了我

我尝试为该项目重新安装 Oracle.ManagedDataAccess.Client 但它没有帮助。

0 投票
0 回答
214 浏览

c# - DbExecutionStrategy 中的 ShouldRetryOn 并不总是有效

大多数情况下它可以工作,但有时我会收到错误消息:

Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-03135: 连接失去联系

...在 C:\xxx\Controllers\XController.cs:108 行

所以第108行很return StatusCode(HttpStatusCode.ExpectationFailed);奇怪......



我不得不做另一个包装器并手动捕获 Oracle 错误来克服这个问题。当我调试和模拟数据库错误时,执行始终进入ShouldRetryOn方法。