问题标签 [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.
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 一起工作正常
.net - Oracle.ManagedDataAccess nuget 包性能
我正在尝试使用Oracle.ManagedDataAccess块包。在网站上它说:ODP.NET,Managed Driver 是 100% 本机 .NET 代码驱动程序。无需安装额外的 Oracle 客户端软件即可连接到 Oracle 数据库。
我想知道他们是否在实际驱动程序周围使用了一些包装器,这允许它在不安装 Oracle 客户端的情况下工作,但由于完全相同的原因,它可能会很慢,因为它可能无法使用本机驱动程序。
本机驱动程序是用 C 语言构建的,预计会快速点亮。我只是在这里做假设。
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
。
.net - OracleDataReader InvalidCastException:.NET 中的十进制类型上的“指定强制转换无效”
当使用Oracle.ManagedDataAccess.Client.OracleDataReader
然后调用reader.GetValue(i)
时,我们得到了上面的异常。
这可以使用这个查询来模拟:
当 oracle 数据是 Oracle 类型Decimal
,并且数据中的精度超过 .NET 小数点中的小数位数时,就会出现问题。主要问题是这样reader.GetValue(i)
做,因此您无法控制它在内部引发此错误的事实。
我实际上有一个解决方法,我将把它作为答案发布,因为我过去曾多次遇到过这个问题,而网络还没有一个好的答案。
有关的:
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 ?
c# - {“输入字符串的格式不正确。”}:oracle 存储过程错误
存储过程
logging.cs 文件
我收到错误
logEntry.abcd2 的值为 0x000000000 并且我的表中的优先级不为空。如何解决这个错误?请帮忙 。任何线索都会有所帮助。
.net - 通过 tnsnames.ora 连接到 Oracle 托管数据访问
实际上,我们的解决方案适用于过时的非托管(?)Oracle .NET 提供程序Oracle.DataAccess.dll
,它使用计算机的tnsnames.ora
文件。
我们想更新它并改用 Oracle 托管 dll(通过最新版本的 Oracle.ManagedDataAccess nuget)。
我们在应用程序中web.config
有一个键,它指示tnsnames
要使用的源。
对我来说有点模糊的是,在安装托管 nuget 并删除旧的之后实际上有什么变化Oracle.DataAccess.dll
......
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 但它没有帮助。
c# - DbExecutionStrategy 中的 ShouldRetryOn 并不总是有效
大多数情况下它可以工作,但有时我会收到错误消息:
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-03135: 连接失去联系
...在 C:\xxx\Controllers\XController.cs:108 行
所以第108行很return StatusCode(HttpStatusCode.ExpectationFailed);
奇怪......
我不得不做另一个包装器并手动捕获 Oracle 错误来克服这个问题。当我调试和模拟数据库错误时,执行始终进入ShouldRetryOn
方法。