问题标签 [system.data.oracleclient]

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 回答
88 浏览

.net - .NET 应用程序中的 Oracle9i 连接错误 (ora-12154) 仅在某些机器上

我制作了一个连接到 Oracle9i 数据库的 .NET(4.6.1) 应用程序。此应用程序在我编写应用程序的机器上运行良好,但在需要安装应用程序的机器上运行良好。

我正在使用 System.Data.OracleClient。我不知道可能出了什么问题。我检查了以下内容。

  • 两台机器使用相同的 TNS 名称配置运行相同的 oracle 客户端。此配置是从它正在工作的开发机器复制而来的。
  • 两台机器都需要正确的 tnsnames.ora 文件(使用 procmon 验证)。
  • 两台机器都可以很好地连接 SQLPlus。
  • 两台机器都使用相同的活动目录帐户进行了测试。
  • 两台机器都为连接设置了正确的用户名和密码。
  • 我尝试全新安装 oracle 客户端但没有成功。
  • 该应用程序在两台机器上都以 32 模式运行。
  • 两台机器运行相同版本的 Windows 7

有谁知道还有什么可能是这个问题的原因?

错误的堆栈跟踪:

0 投票
2 回答
1384 浏览

c# - System.DllNotFoundException:发布到 IIS 时无法加载 DLL 'oci'

我有一个 .net 核心应用程序,我必须使用 System.Data.OracleClient.dll 来连接 oracle db。

当我在 VS2017 中运行它时一切正常,但是当我发布并尝试运行连接到数据库的部分时,我收到一个错误:

System.DllNotFoundException:无法加载 DLL 'oci':找不到指定的模块。(HRESULT 异常:0x8007007E)在 System.Data.OracleClient.Oci.OciCalls.OciNativeCalls.OCIEnvCreate(IntPtr& envhpp,OciEnvironmentMode 模式,IntPtr ctxp,IntPtr malocfp,IntPtr ralocfp,IntPtr mfreep,Int32 xtramem_sz,IntPtr usrmempp)

我是否缺少某种 IIS 模块?我在同一台 PC 上有 x64 位 oracle。

0 投票
2 回答
2911 浏览

.net - Oracle 数据库对 Dotnet Core 的支持何时可用?

我希望我的 DotnetCore 2.0 应用程序连接到 Oracle,但是,我无法从 Oracle 支持中找到任何官方文档。根据此链接http://www.oracle.com/technetwork/topics/dotnet/tech-info/odpnet-dotnet-core-sod-3628981.pdf预计将在 2017 年底发布,但它是仍然不可用。

我们正在尝试使用其他非官方库(dotNetCore.Data.OracleClient)按照此线程连接到 oracle How to connect to an Oracle database Connection from .Net Core但它有很多限制,例如

  1. 我们无法使用所有参数调用存储过程
  2. dotnet 参数类型(如 ref)在调用时不可用

我们在 Oracle 中有现有的数据库,在 DotNet 4.6 中有应用程序。我们将在使用 oracle 数据库的 Dotnet Core 中重写我们的应用程序。

0 投票
1 回答
654 浏览

oracle - Oracle (OracleClient) 数据源未显示在 Visual Studio 2015 for SSRS 中

我目前正在使用 Visual Studio 2013 处理 SSRS 2014 报告。我们被要求使用 Visual Studio 2015,但我遇到了 2015 年缺少数据源的问题。

在 2013 年,我看到了以下数据源: Visual Studio 2013 中可用的数据源 2013 年 ADO

在 2015 年,我看到以下数据源: Visual Studio 2015 中可用的数据源 2015年ODP

是否有任何配置可以让我使用 OracleClient 甚至显示两个数据提供者?

0 投票
1 回答
3370 浏览

vb.net - VB.NET:无法从客户端应用程序连接到 Oracle 数据库服务器

我在同一个本地网络 (Wi-Fi) 上有 2 台笔记本电脑(A 和 B)。

我在笔记本电脑 A 上安装了 Oracle 数据库 12c r2。

在笔记本电脑中,AI 使用 Visual Studio 2017 创建了一个可以连接到 Oracle 数据库的 VB.NET 应用程序。

该应用程序在笔记本电脑 A 上运行良好。它连接到数据库,这是我的应用程序表单,我使用的连接字符串(192.168.20.98 是我的笔记本电脑 A IP 地址):

应用程序工作屏幕,来自笔记本电脑 A

我还编辑了我的listener.oratnsnames.ora位于C:\app\mustafa\product\12.2.0\dbhome_1\network\admin 以下位置:

listener.ora

tnsnames.ora

我已经编辑了我的 Oracle 主文件夹权限以提供authenticated users完全访问权限。

因此,当我将我的应用程序移动到笔记本电脑 B 并运行它以连接到笔记本电脑上的数据库时,AI 出现了这个错误:

System.Data.OracleClient 需要 Oracle 客户端软件版本 8.1.7 或更高版本。

笔记本电脑 B 的错误屏幕

我找不到任何解决方案。是否也需要在我的笔记本电脑 B 上安装 Oracle 数据库 12c r2?

0 投票
1 回答
53 浏览

oracle - Sharepoint webpart 2016 和 oracle db 9i

安装 odac 和 oracle 客户端 12.2 后,我使用 system.data.oracleClient 通过 Visual Studio 2015 测试 oracle 连接,我的 oracle db 版本是 9i,连接在 Visual Studio 2015 上工作正常,但是当我将其作为 Webpart 部署到 Sharepoint 2016它在 sharepoint2010 中作为 webpart 正常工作时出错。问题就在sharepoint2016中,我使用.net framework 4.5

我不明白它在 Visualstudio 中的工作方式,而在 sharepoint 2016 中不工作,错误是 Error=ORA-03134:不再支持与此服务器版本的连接

在此处访问mypage时出现应用程序错误,Error=ORA-03134: 不再支持与此服务器版本的连接。在 System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle, Int32 rc) 在 System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean IntegratedSecurity, Boolean unicode, Boolean omitOracleConnectionName) .OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions) at System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)

0 投票
1 回答
881 浏览

iis-10 - 在 iis(4.122.18.3) 中找不到 Oracle.DataAccess (ODAC)18.3

3) 但在安装中没有机器级选项。我手动将 Oracle.DataAccess 和 Oracle.Web 放入 gac 并将 DbProviderFactories 添加到 machine.config。但我仍然遇到此错误。

有人用 iis 服务器试试这个 odac 版本吗

无法加载文件或程序集“Oracle.DataAccess,PublicKeyToken=89b483f429c47342”或其依赖项之一

0 投票
1 回答
447 浏览

c# - System.DllNotFoundException:部署到 Docker Linux 容器时无法加载 DLL 'oci'

我尝试使用System.Data.OracleClient连接 oracle db。我的 .net 核心应用程序在 vs2017 和 IIS 中运行良好,但是当我部署到 Linux 容器并运行从数据库获取连接的部分时,我收到此错误:

System.DllNotFoundException:无法加载 DLL 'oci':找不到指定的模块。(HRESULT 异常:0x8007007E)在 System.Data.OracleClient.Oci.OciCalls.OciNativeCalls.OCIEnvCreate(IntPtr& envhpp,OciEnvironmentMode 模式,IntPtr ctxp,IntPtr malocfp,IntPtr ralocfp,IntPtr mfreep,Int32 xtramem_sz,IntPtr usrmempp)

当我尝试再次运行运行该部分时,错误变为:

System.NullReferenceException:对象引用未设置为 System.Data.OracleClient.OracleConnectionPool.GetConnection () [0x00000] in :0 at System.Data.OracleClient.OracleConnection.Open () [0x00000] in :0

任何建议将不胜感激。

更新:我删除了System.Data.OracleClient并使用了Oracle.ManagedDataAccess.Core,错误消失了。需要注意的是,当使用 Oracle.ManagedDataAccess.Core 2.18.3 版本时,您必须为 docker linxu 容器设置一个名为 TZ 的环境变量,但在 2.12.0-beta3 版本中,TZ 不是必需的,详细信息请参见此处

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 投票
1 回答
90 浏览

.net - 无法从 NHibernate.Driver.OracleDataClientDriver Version=4.030319 创建驱动程序

过去几天我一直在与此作斗争,但我束手无策!

我的项目已转移到从 Server 2008 到 Server 2016 的新开发环境。该应用程序使用 .Net Framework 4.0、Oracle Client win32_11gR2 和 NHibernate 4.030319。现在当然这一切都在 Server 2008 R2 上运行良好,但在 Server 2016 上,我们无法让事情正常工作。

虽然我很欣赏 11g 版本的 Oracle 需要安装 .Net Framework 3.5,但由于我们不负责实际操作系统,这由我们的支持人员控制,我们尝试了 12c 版本的客户端。这安装好了,但是当我们尝试调用应用程序时,它出错了“无法从 NHibernate.Driver.OracleDataClientDriver 创建驱动程序”。

我已经尝试为 Database Factories 设置 machine.config 设置,但自从迁移到 Server 2016 后似乎没有任何效果。

有谁知道如何让它在 Windows Server 2016 上运行?