Oracle.DataAccess.Client依赖项

bil*_*bob 8 .net c# oracle dll odp.net

首先,我想使用它Oracle.DataAccess.dll来使用OracleBulkCopy.

我想知道我需要能够从数据库中读取的所有dll,然后在Oracle中执行批量复制.目前,我们只使用一个dll来执行数据库的所有读取,我们正在使用Oracle.ManagedDataAccess.Client.但我不能用它来执行bulkCopy.

我不想为用户安装ODP.NET,我想直接在程序中包含dll.所以我想知道能够Oracle.DataAccess.dll在32位和64位中使用最低要求的dll .

我知道有一些关于这个的老帖子,但它很安静,列出的dll已经过时了.我无法找到其中一些事件.

我为ODAC12安装了ODP.net,我在这篇文章中检索了所有列出的dll .我也尝试过这篇文章.列出的dll指出版本11.

我创建了一个虚拟项目,打开一个连接,读取一个表并将其批量放入另一个表中.我从项目根目录中的帖子中复制了列出的dll,并将其包含Oracle.DataAccess.dll在项目中.

当我以64位运行我的程序时,我收到以下错误:

无法加载文件或程序集'Oracle.DataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342'

当我以32位运行它时,我收到此错误:

无法加载DLL'OraOps12.dll':找不到指定的模块.(HRESULT异常:0x8007007E)"

我包括的dll是:

  • OCI.DLL
  • OCIW32.DLL
  • Oracle.DataAccess.dll
  • orannzsbb12.dll
  • oraocci12.dll
  • oraociei12.dll
  • OraOps12.dll

bil*_*bob 12

我设法让它发挥作用.

  • 下载适用于您的项目的优秀版ODAC.

    1. 对于32位项目,您需要下载ODAC12 ..._ x32.zip(ODAC121021Xcopy_32bit.zip).

    2. 对于64位项目,您需要下载ODAC12 ... _ x64.zip

  • 根据您想要的版本(32位对64位)将其解压缩到空文件夹中.

  • instantclient_12_1通过在Windows搜索栏中搜索*.dll,在文件夹中找到所有dll.你需要抓住:

  1. OCI.DLL

  2. OCIW32.DLL

  3. orannzsbb12.dll

  4. oraociei12.dll

  5. oraons.dll

  • 根据您的.NET版本在这两个dll中找到odp.net4或者odp.net20文件夹:
  1. OraOps12.dll

  2. Oracle.DataAccess.dll

  • 复制那些32位dll或64bit dll并将它们直接放在项目的Output路径中.例如在C:\...\vsProjects\BulkInsert\BulkInsert\bin\Debug.

  • 通过指向输出路径浏览项目中的Oracle.DataAccess.dll.

在此输入图像描述