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

c# - Oracle 9i:ORA-01017:用户名/密码无效;登录被拒绝

当我尝试从 Visual Studio 2017 应用程序连接到我的 Oracle 9i 数据库时出现以下异常:

ORA-01017: 无效的用户名/密码;登录被拒绝

代码:

同样的问题:

  • 使用与程序System.Data.OracleClient集相同的代码

  • 尝试通过 Visual Studio 中的服务器资源管理器添加新的数据连接。

我尝试设置System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled to 0没有运气。

当我使用 SQL Developer 时,我能够使用相同的凭据连接到同一个数据库并执行任何查询。任何想法 ?

数据库:Oracle 9i

视觉工作室:2017

0 投票
1 回答
2245 浏览

.net - Oracle.ManagedDataAccess 到 AWS RDS DB - TCPS:无效的 SSL 钱包(魔术)

我正在尝试使用 SSL 证书通过 Oracle.ManagedDataAccess Nuget 包连接到 Amazon RDS 实例。

我可以使用使用 orapki 生成的钱包通过 SQL*Plus 成功连接。按照AWS 说明生成的钱包

我想通过 Oracle.ManagedDataAccessin C# 做同样的事情,我正在尝试使用同一个钱包。

我的 C# 看起来像这样:

我的 app.config 有我钱包的位置:

我得到一个 OracleException Open()

Oracle.ManagedDataAccess.Client.OracleException:“网络传输:解析钱包位置时 SSL 失败”

除了内部例外:

TCPS:无效的 SSL 钱包(魔术)

它肯定会找到并可以访问钱包文件,因为如果您将位置更改为无效的位置,您会得到不同的内部异常,例如:

DirectoryNotFoundException:找不到路径“C:\ssl_wallet2\cwallet.sso”的一部分。

我找不到任何明显的证据来说明为什么该钱包应该无效,因为 SQL*Plus 已使用它成功连接到同一台服务器。

Invalid SSL Wallet (Magic)没有产生任何我能找到的相关内容。这种方法有什么我遗漏的吗?

编辑:

您的堆栈跟踪可能包含:

Culture=neutral, PublicKeyToken=b77a5c561934e089Array 不能为空或 null。参数名称: System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2.X509Certificate2..ctor(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) 在 OracleInternal.Network.TcpsTransportAdapter.Negotiate(ConnectionOption conOption

0 投票
2 回答
8401 浏览

c# - options.UseOracle() 在 EF Core 中不可用

将 EF Core 与 Oracle.ManagedDataAccess.Core(2.18.3) 一起使用

尝试添加数据库上下文时无法调用“options.UseOracle”方法。

编译器抛出错误:“DbContextOptionsBuilder”不包含“UseOracle”的定义,并且找不到接受“DbContextOptionsBuilder”类型的第一个参数的可访问扩展方法“UseOracle”(您是否缺少 using 指令或程序集引用?)

请看下面的代码,它最后一行没有编译,我的 nuget 参考包括 Oracle.ManagedDataAccess.Core(2.18.3)

0 投票
1 回答
395 浏览

c# - C# 中的 Oracle.ManagedDataAccess 性能

我使用 Oracle 数据库作为我的后端。对于我的工作流程,我正在根据用户选择的内容构建动态查询。此动态查询从 5 个不同的表中获取。我正在从所有 5 个表中获取并读取所有列,这样我也可以在其他地方使用相同的逻辑。

Oracle.ManagedDataAccess.dll用于数据库访问。

代码:

一切正常。查询执行甚至不需要一秒钟。然而,while 循环读取 750 条记录需要 40 秒。这是不可接受的。你能帮我改进while循环吗?我不确定它如何以最快的方式读取所有记录。

0 投票
1 回答
770 浏览

c# - Oracle Managed DataAccess connection object is keeping the connection open

I'm using Oracle.ManagedDataAccess Nuget package version 18.3.0. I tried many things. I tried to dispose everything I can think of, even oracle parameters objects. And wrapped everything inside a using block but to no avail. The only thing that actually worked for me is that the commented line OracleConnection.ClearPool(oracle);. Is this a bug, or some configuration related issue, or am I misunderstand things here? Also, I tried to remove the reference of Oracle.ManagedDataAccess and replaced it with a reference to System.Data.OracleClient and that actually worked for me. It automatically closed the connection, so no connection left with "In-Active" status. The code below I moved it into a simple, single button, Windows Forms application to make 100% sure nothing is interfering and the problem still occurring.

And this is an image to show the opened connection through Toad.
Oracle Connection issue Of course, for each click to that button, the code above will execute and a new session will remain open, until what you see in the image. The name "TheTesterOfAllTests.exe" is the Windows Forms app.
Is this a configuration problem? Is there any way to solve this issue other than using ClearPool method? Because it affects the performance of the app.
P.S. The application that is originally using the code above is a WCF Service that is consumed by a Web application.
P.S. 2 There is some kind of memory leakage, with each click to that button the memory usage increases

0 投票
0 回答
6385 浏览

c# - Oracle 错误:池连接请求超时

我将 Oracle12c 与用 C# 编写的应用程序一起使用,并使用 Oracle.ManagedDataAccess.dll 来处理数据库连接。

我们已经开始运行多年的产品偶尔会抛出此异常:

我知道这个错误的原因。查看代码,OracleConnection 或 OracleCommand 对象都没有被释放。所以这些连接正在建立,直到它最终抛出这个异常。

修复很简单。将这些包装在Using语句中。我不需要帮助。

但是我感兴趣的是为什么这个问题现在已经开始了。该软件运行多年没有问题。他们做了一些数据库维护,更新了同一台服务器上的其他软件,然后这个问题就开始了。我不知道他们做了什么 Db 维护。

应用程序中的连接字符串没有指定任何池属性。

是否有 oracle db 设置会导致数据库中的同时连接数量减少,从而导致这种情况开始发生?

更新

我写了一个小测试应用程序来检查限制。它只是循环并打开一个连接,执行一个基本查询并且不处理连接。在我的测试系统上,它在 640 次循环后开始抛出此异常。每次我运行它时,它都会改变 10 个循环。

是什么设置了这个限制?

0 投票
2 回答
40 浏览

c# - 如何使用 C# 和 OleDbConnection 将表定义从 MS Access 转换为 Oracle?

我需要在不使用 OracleBulkCopy(使用托管数据访问)的情况下将表从 MS Access 复制到 Oracle。第一步是创建表。

从下面的代码中可以看出,我现在在查询列长度时手动转换字段。

我想使用一个语句来为我转换字段,而不必手动为所有类型添加规则,因为有很多类型。或者更好的是,只需提取某种我可以在 Oracle 中执行的 DDL。这可能吗?

0 投票
1 回答
160 浏览

c# - 使用 ManagedDataAccess 将记录从 MS Access 表导入 Oracle 表的最快方法

我需要使用 C# 和 Oracle.ManagedDataAccess 将 MS Access 表中的大量记录导入 Oracle 表。假设表已经存在,将记录从 Access 复制到 Oracle 的最快方法是什么?我现在使用的是 OleDbConnection,但如果有更快的方法使用 Interop、VBA 和 sqlloader,我也愿意接受。

到目前为止,这是我的代码。不幸的是,它需要几天才能完成,而它应该需要几分钟。

0 投票
2 回答
5041 浏览

c# - Oracle.ManagedDataAccess dbcontext 脚手架预期程序集属性名为 DesignTimeProviderServicesAttribute 错误

我正在尝试使用 dotnet core 实体框架 dbcontext 脚手架连接到我的 dotnet core 项目的 oracle 数据库,如下所示:

<!-- language: shell --> dotnet ef dbcontext scaffold "User Id=<username>;Password=<password>;Data Source=<hostaddress>:<port>/<sid>" Oracle.ManagedDataAccess --table mytablename -o Models

我已经能够通过 pomelo 和 mysql.data 对 mysql 进行测试来实现这一点,但我需要的真正数据源在 oracle db 中。

Unable to find expected assembly attribute named DesignTimeProviderServicesAttribute in provider assembly Oracle.ManagedDataAccess. This attribute is required to identify the class which acts as the design-time service provider factory.

虽然我知道它是说我需要一个实体框架设计器包,但我找不到任何选项,我已经尝试使用 Devart.Data.Oracle.Entity.EFCore 执行此操作,但我一直获得使用 dbcontext 所需的许可脚手架。

任何帮助或建议将不胜感激,在此先感谢。

0 投票
1 回答
170 浏览

c# - Oracle.ManagedDataAccess.Client.OracleException: 'ORA-02180: CREATE TABLESPACE 的选项无效'

我正在尝试从 C# 动态创建 Oracle 表空间。

它引发以下异常。

但是当我在“SQL Plus”中执行相同的语句时,它工作正常。