我必须从.NET代码连接Oracle 11g DB。为此,我在阅读了一些论坛帖子后安装了ODP.NET bur,我认识到我也需要安装Oracle客户端。
这是真的吗?我看到Oracle客户端的大小为ca. 2GB!我真的需要安装这么大的客户端才能连接Oracle DB吗?
答案 0 :(得分:37)
已发布托管ODP.NET。它目前是Oracle DB 12c的一部分 客户。要使用托管ODP.NET,您必须下载并安装 DB客户端。从那里,您可以只提取托管的ODP.NET 装配和设置文件。这些文件小于10 MB,可以 部署到任何目标机器。
目前,我们正在打包一个独立管理的ODP.NET版本 ODAC 12的版本会小得多。这将发布 OTN。
如果您可以等待几天,ODAC 12c将在OTN上运行,您可以下载该版本。这将是我们最新和最伟大的 托管ODP.NET版本
====
我们不打算在NuGet上放置托管的ODP.NET。我们相信 使用ODAC管理ODP.NET下载将提供相同的好处 NuGet在组装隔离和下载大小方面。
有一个讨论Oracle是否应该提供托管的线程 ODP.NET NuGet支持。一旦你使用ODAC 12c,我想知道 您是否仍然需要NuGet支持。 https://forums.oracle.com/thread/2559445
PM> Install-Package Oracle.ManagedDataAccess
那么问题到底是什么?
基本上到目前为止,ODP.NET是一个与Oracle客户端.dll文件对话的.NET层,这个小事实有很多含义:
那是什么?
托管驱动程序基本上是一个单独的.dll文件,其中包含.Net本机实现的ODP.NET 这意味着不需要Oracle客户端,现在本机代码就在幕后。 XCopy安装可以轻松完成。
主要好处:
那捕获的是什么?
请注意,Native-Code ODP.NET仍然可用。托管版本(至少现在)除了原生版本之外还有。
参考文献:http://oracleatdotnet.blogspot.com.es/2013/07/odpnet-managed-driver-beta-2.html
ODP.NET托管驱动程序与非托管驱动程序之间的差异 http://docs.oracle.com/html/E41125_02/intro004.htm
Oracle Data Provider for .NET的功能 http://docs.oracle.com/database/121/ODPNT/features.htm#ODPNT0007
答案 1 :(得分:11)
ODP.NET确实需要本机OCI DLL(~130 MB)。
获取所有必要文件的最简单方法可能是从oracle.com下载“带有XCopy部署的Oracle数据访问组件”。
供您参考,ODP.NET在运行时使用以下DLL:
oci.dll
Oracle.DataAccess.dll (the managed ODP.NET assembly itself)
orannzsbb11.dll
oraociei11.dll
OraOps11w.dll
顺便说一下,无论您使用的是32位还是64位本机Oracle DLL,都需要注意 - 您必须将它们与托管代码的“位数”相匹配。如果您正在为“任何CPU”构建,那么这一点尤其棘手,因此位数不固定。
答案 2 :(得分:11)
你也可以使用NuGet来管理ODP.NET https://www.nuget.org/packages/odp.net.managed/
PM> Install-Package odp.net.managed
观看使用ODP.NET托管驱动程序的快速启动视频! (从http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html复制)
http://www.youtube.com/watch?feature=player_embedded&v=I1q50HnUh_w
<强>更新强>
NuGet for Official Oracle ODP.NET,托管驱动程序 https://www.nuget.org/packages/Oracle.ManagedDataAccess/
或包管理器控制台
PM> Install-Package Oracle.ManagedDataAccess
答案 3 :(得分:8)
答案 4 :(得分:5)
我要离开这个答案,因为在发布ODP.net托管驱动程序时,旧的答案现在已经过时了。
64-bit Oracle Data Access Components (ODAC)
重要:Entity Framework设计时功能需要32位Oracle Developer Tools for Visual Studio下载。下面支持Entity Framework部署的下载不包含设计时工具,只包含运行时支持。
32-bit Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio
当前可用的版本ODAC 12cR2向后兼容Oracle 10gR2或更高版本。请参阅ODAC 12cR2 Installation Instructions的系统要求部分。 ODAC 12cR2需要/支持版本4到4.5.1的.Net框架。
以前的版本ODAC 12cR1也可以根据它installation instructions向后兼容Oracle 10gR2或更高版本。
答案 5 :(得分:2)
使用现在可用的the managed oracle-client。管理AnyCPU 6MB dll。
答案 6 :(得分:0)
它对我有用(没有Oracle Client的PC):
已编辑:
尽管此解决方案效果很好; 今天,我认为最好的方法是使用Oracle托管数据访问驱动程序。当我们需要避免台式机和服务器环境之一不使用相同(32位或64位)体系结构时发生问题时,这会更好吗?
感谢钢铁自动化:
以下解决方案将同时应用于11g和12c数据库。
执行以下步骤:
第1步
我们将需要Oracle提供的一组dll在我们的项目中使用。因此,在第一步中,下载适用于您的Windows版本的Oracle数据访问组件(ODAC)。截至本文发布之日,有效下载URL为:http://www.oracle.com/technetwork/topics/dotnet/downloads/odacdeploy-4242173.html
注意:ODAC 32位版本适用于32位和64位。在使用64位版本时,我遇到了几个问题。因此,我建议直接下载32位版本。
打开下载的zip文件,并一起获取下面的dll。我列出了与您将在其中找到它们的文件夹的dll。稍后我们将它们复制到我们的调试文件夹中。
\instantclient_12_2\
oci.dll
orannzsbb12.dll
oraocci12.dll
oraocci12d.dll
oraociei12.dll
oraons.dll
\oramts\bin\
oramts.dll
oramts12.dll
oramtsus.dll
\odp.net4\odp.net\bin\4\
Oracle.DataAccess.dll
\odp.net4\bin\
OraOps12.dll
第2步
使用Visual Studio创建一个控制台应用程序,并将步骤1中列出的dll复制到与项目可执行文件相同的文件夹Debug文件夹中。通过浏览到您刚刚将该dll复制到的Debug文件夹,添加对“ Oracle.DataAccess.dll”的引用。
它对我有用(安装了Oracle Client的PC):
下载驱动程序XCOPY版本:
https://www.oracle.com/database/technologies/dotnet-odacdeploy-downloads.html
32位ODAC 12.2.0.1.0
ODAC122010Xcopy_32bit.zip
只需在项目中添加对Oracle.DataAccess.dll的引用 参考:
------------------------------- ------------------- ----------- ----------------- --------------------------- -----------------------
Name Date modify Size Version Folder Type
------------------------------- ------------------- ----------- ----------------- --------------------------- -----------------------
Oracle.DataAccess.dll 24/05/2017 16:46 2.100 KB 4.122.1.0
浏览到odp.net4文件夹(支持批量插入)
将此文件复制到ouptut bin文件夹:
------------------------------- ------------------- ----------- ----------------- --------------------------- -----------------------
Name Date modify Size Version Folder Type
------------------------------- ------------------- ----------- ----------------- --------------------------- -----------------------
oci.dll 13/02/2017 23:31 1.270 KB 12.2.0.0 InstantClient_12_2 Extensão de aplicativo
ociw32.dll 13/02/2017 22:20 346 KB 11.1.0.1 InstantClient_12_2 Extensão de aplicativo
orannzsbb12.dll 05/12/2016 18:38 4.329 KB 12.2.0.1 InstantClient_12_2 Extensão de aplicativo
oraocci12.dll 13/02/2017 21:29 1.006 KB 12.2.0.1 InstantClient_12_2 Extensão de aplicativo
OraOps12.dll 24/05/2017 16:45 433 KB 2.122.1.0 InstantClient_12_2 Extensão de aplicativo
------------------------------- ------------------- ----------- ----------------- --------------------------- -----------------------
Name Date modify Size Version Folder Type
------------------------------- ------------------- ----------- ----------------- --------------------------- -----------------------
Oracle.ManagedDataAccess.dll 24/05/2017 16:07 4.763 KB 4.122.1.0