C# Oracle.DataAccess.Client依赖项
首先,我想使用C# Oracle.DataAccess.Client依赖项,c#,.net,oracle,dll,odp.net,C#,.net,Oracle,Dll,Odp.net,首先,我想使用Oracle.DataAccess.dll来使用OracleBulkCopy 我想知道我需要能够从数据库中读取的所有DLL,然后在Oracle中执行批量复制。目前,我们只使用一个dll来执行对数据库的所有读取,我们使用的是Oracle.ManagedDataAccess.Client。但我不能用它来进行批量复制 我不想为用户安装ODP.NET,我想在程序中直接包含dll。因此,我想知道使用32位和64位的Oracle.DataAccess.dll所需的最小dll数 我知道有一些关于
Oracle.DataAccess.dll
来使用OracleBulkCopy
我想知道我需要能够从数据库中读取的所有DLL,然后在Oracle中执行批量复制。目前,我们只使用一个dll来执行对数据库的所有读取,我们使用的是Oracle.ManagedDataAccess.Client
。但我不能用它来进行批量复制
我不想为用户安装ODP.NET,我想在程序中直接包含dll。因此,我想知道使用32位和64位的Oracle.DataAccess.dll
所需的最小dll数
我知道有一些关于这个的旧帖子,但是它很旧,而且列出的DLL已经过时了。我找不到其中的一些
我为ODAC12安装了ODP.net,并检索了本文中列出的所有DLL。我也试过这个。列出的DLL指出了版本11
我创建了一个虚拟项目,它打开一个连接,读取一个表,然后将其打包到另一个表中。我从项目根目录中的帖子中复制了列出的dll,并在项目中包含了Oracle.DataAccess.dll
以64位运行程序时,出现以下错误:
无法加载文件或程序集“Oracle.DataAccess,版本=4.121.2.0,
区域性=中性,PublicKeyToken=89b483f429c47342'
当我以32位运行它时,会出现以下错误:
无法加载DLL“OraOps12.DLL”:无法加载指定的模块
建立(HRESULT的例外:0x8007007E)
我提供的DLL包括:
- oci.dll
- ociw32.dll
- Oracle.DataAccess.dll
- orannzsbb12.dll
- Oracioc12.dll
- oraociei12.dll
- OraOps12.dll
安装Oracle Instant client,您就可以了。否则,您只会遇到麻烦。我设法让它工作起来
- 下载面向您的项目的ODAC的好版本
- 对于项目,您需要下载ODAC12…_x32.zip(ODAC12121xcopy_32bit.zip)
- 对于该项目,您需要下载ODAC12…_x64.zip
- 根据您想要的版本(32位对64位),将其解压缩到空文件夹中
- 通过在windows搜索栏中搜索*.dll,在
文件夹中找到所有dll。您需要抓取:instantclient_12_1
- 根据您的.NET版本,在
或odp.net4
文件夹中找到这两个DLL:odp.net20
- 复制那些32位DLL或64位DLL,并将它们直接放在项目的输出路径中。例如,在
中C:\…\vsProjects\BulkInsert\BulkInsert\bin\Debug
- 通过指向输出路径浏览项目中的Oracle.DataAccess.dll
我遇到了类似的问题;安装oracle数据访问组件(odacODTwithODAC122010.zip)解决方案。你愿意为第三方连接器付钱吗?换句话说,如果你需要的话,你的雇主愿意花几百美元买一些软件,这对他们有用吗?第三方连接器的名称是什么?与其一个接一个地做这个充满问题的dll,不如看看e“XCOPY”安装。它更小,您可以将其嵌入您自己的安装中。我从2009年左右开始使用DevArt的dotConnect for Oracle。它确实需要钱,但它消除了对本地Oracle客户端(如托管ODP)的依赖性而且仍然支持诸如批量插入和更新之类的高级OCI功能。当然,所有托管DLL都可以被访问或本地化。我认为最好是从文件夹
instantclient\u 12\u 1
中复制所有文件(这相当于安装Oracle实例客户端)。我可以在您的环境中工作,但在稍有不同的情况下,它可能会失败。请注意,不要从错误版本的Oracle bitness复制DLL。我复制了DLL,并出现此错误,直到我从同一版本的Oracle Instant Client获得所有DLL:您可以添加指向该文件的链接吗?您可以在第页上选择版本