问题标签 [odp.net-managed]
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.
oracle - ODP.NET + 端口 6200 上的意外流量(Oracle 通知服务)
我们有一个使用我们产品的客户端,其中包括使用 .NET 4+、Entity Framework 和 ODP.NET 构建的 Windows 服务。由于某种原因,在一个特定安装中,但不是任何其他原因,Windows 服务似乎在 6200 上生成流量 。Oracle 文档表明这是 Oracle 通知服务使用的端口。这是出乎意料的,因为我们的产品不使用 ONS。我发现其他 Oracle 文档表明 RAC/Fast Failover 也使用 ONS,但我们已经与客户端确认他们在任何环境中都不使用 RAC,并且我们没有在连接字符串中使用 RAC 选项。我们也没有(据我们所知)使用数据库更改通知或对缓存数据进行任何缓存/验证,这听起来也利用了 ONS。
谁能帮助解释为什么我们会生成端口 6200 流量,更重要的是,如何让它停止?谢谢!
entity-framework-6 - 意外的连接状态。使用包装提供程序时,请确保在包装的 DbConnection 上实现 StateChange 事件
第一次来这里...
我正在编写一个使用 Oracle.ManagedDataAccess 连接到 Oracle 数据库的 WebAPI 应用程序。我正在使用 EF6,我间歇性地得到
“意外的连接状态。使用包装提供程序时,请确保在包装的 DbConnection 上实现 StateChange 事件。”
我正在使用 Autofac 并将所有内容注册为“InstancePerDependency”(也尝试过 InstancePerRequest),所以我应该在每个请求中获取一个新实例,但似乎一旦我的连接进入这种状态,它就无法恢复。
我尝试关闭连接池并在我的连接上调用 Dispose()。
有谁知道这种行为背后的原因是什么,或者提供一些关于这个异常意味着什么的额外细节,因为 Oracle.ManagedDataAccess.Client.OracleConnection 似乎实现了 StateChange 事件。
谢谢!
这是堆栈跟踪:
在 System.Data.Entity.Core.Objects.ObjectContext.EnsureContextIsEnlistedInCurrentTransaction[T](Transaction currentTransaction, Func
1 openConnection, T defaultValue) at System.Data.Entity.Core.Objects.ObjectContext.<EnsureConnectionAsync>d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.Core.Objects.ObjectContext.<ExecuteInTransactionAsync>d__3d
1.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices .TaskAwaiter.ThrowForNonSuccess(任务任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在 System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter1.GetResult() at System.Data.Entity.Core.Objects.ObjectQuery
1.d__e.MoveNext() --- 从先前引发异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务)在 System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter1.GetResult() at System.Data.Entity.Internal.LazyAsyncEnumerator
1.d__0.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task任务)在 System.Data.Entity.Infrastructure.IDbAsyncEnumerableExtensions.d__25`1.MoveNext() 的 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
c# - 在Entity Framework中,如何在VS2017中从不同的Oracle schemas生成实体
我目前正在尝试从 Entity Framework 6 中的现有 Oracle 12 数据库中的表生成代码。我遇到的问题是,虽然它能够在我登录环境时看到我拥有的架构,但 Entity Framework 可以似乎看不到我有权访问的任何其他模式。
如何更改它以便我可以看到另一个架构?
我使用了实体框架模型优先和代码优先。我可以手动更改我在 Oracle 中拥有的生成表上的模式,它会起作用,但这意味着从我自己的模式中的其他模式生成我自己的表版本,以便能够通过实体使用它们框架。
否则,从所有现有表中生成所有代码将是一项繁琐的工作。
我该如何解决这个问题?
c# - 使用 Oracle.ManagedDataAccess 异常连接到 Oracle
我在我的 C# (>.NET 4.0) 项目中使用 Oracle.ManagedDataAccess Nuget 包版本 12.2.1100。在我的本地主机中一切正常,但在开发服务器上我遇到了这个异常:
异常消息:ORA-12154:TNS:无法解析指定的连接标识符异常源:Oracle Data Provider for .NET,Managed Driver
现在我认为 ManagedDataAcess 包含了我需要的一切。我还缺少其他东西吗?是否有其他东西干扰了包裹?我需要添加其他东西吗?
<oracle.manageddataaccess.client>
注意:我的 Web.config中没有标签
代码:
编辑:
我已经确认 TNS_ADMIN 变量是在控制面板中设置的,但这似乎没有奏效。
然后我将 tnsnames.ora 文件添加到 bin 文件夹中,我已经让它工作了,但这不是一个长期的解决方案。
c# - 如何在 c# 中使用 odp.net 托管驱动程序从同义词中查询数据?
我与一个服务有联系,在该服务中我只能访问同义词(即,我不能创建任何视图、过程……),并且我打算从它们中查询数据。我正在使用 ODP.NET 托管驱动程序来执行此操作,但直到现在我还没有发现任何东西可以实现这一点。我要对所有查询进行硬编码,但在此之前,我想问是否有可能以某种方式将 c# 类映射到 oracle 同义词,如果这有意义的话。
提前致谢!
c# - ODP.NET 托管跟踪文件
我在尝试为应用程序生成跟踪文件时遇到问题。
尝试解决 Oracle 问题,但未写入跟踪文件。这是我的 app.config,它作为 exename.app.config 移动到 Release 文件夹。我正在尝试针对 Visual Studio 运行。
这是app.config。
这是源代码:
我做错了什么,我没有看到文件?谢谢
vb.net - IDbDataParameter - 定义 Oracle Clob
我有一个以 CLOB 作为输入的存储过程。
我正在寻找进行重构,所以我的 Oracle 库没有被直接引用。当我从对象创建参数时,我得到了一个 IDbDataParameter 对象。
将字符串传递给它而不定义类型似乎工作正常(设置名称和值)。
但是,文本在 32767 处被截断,这是 Oracle VARCHAR 的最大长度。
所以,我的问题是,如何将 OracleDbType 设置为 Clob 类型,而无需公开程序集或使用反射。我尝试使用二进制的 DbType,但失败了。如果有更好的方法,我宁愿不加载使用反射的库。
这是一些示例代码:
从来电者那里。p_notes 参数是我想要成为 CLOB 的参数。
那么有没有办法以将 OracleDbType 分配给 CLOB 的方式设置 DbType?
.net - 使用由企业库管理的 ODP.Net 时使用 OUT 引用执行存储过程的问题
我正在尝试使用托管ODP.Net和Enterprise Library一个一个地执行多个 (3) 存储过程。每个存储过程都返回一个OUT 游标,每个游标都被命名为“ cur_out ”。奇怪的是,第一个存储过程总是返回记录,但是随后调用 ExecuteDataSet() 以获取剩余的两个 SP 从不返回任何记录。这与 System.Data.OracleClient 完美配合,所以我知道存储过程本身没有问题。我无法弄清楚为什么这些 SP 没有返回任何东西。下面是我的示例代码:
有人可以指出我在这里缺少什么吗?有什么我可以做不同的事情吗?请注意,我使用的 Oracle 12c DB 在单个存储过程中返回多个引用游标时存在问题,因此必须单独执行这些,然后将结果组合到单个数据集中。
oracle - 数据源中的 Oracle 数据库为 {e5e86-......}
数据源检查此图像。我得到的是 {......} 这个变量,而不是 oracle 数据库。为什么这样 ?提前致谢。