【发布时间】:2016-02-04 04:59:56
【问题描述】:
首先,我想使用Oracle.DataAccess.dll来使用OracleBulkCopy。
我想知道我需要能够从数据库中读取然后在 Oracle 中执行批量复制的所有 dll。目前,我们只使用一个 dll 来执行从数据库中读取的所有操作,我们使用的是Oracle.ManagedDataAccess.Client。但我不能用它来执行bulkCopy。
我不想为用户安装 ODP.NET,我想将 dll 直接包含在程序中。所以我想知道能够在 32 位和 64 位中使用Oracle.DataAccess.dll 所需的最低 dll。
我知道有一些关于这个的旧帖子,但它很老,而且列出的 dll 已经过时了。我找不到其中一些。
我为 ODAC12 安装了 ODP.net,并检索了此 post 中列出的所有 dll。我也试过这个post。列出的 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
- oraocci12.dll
- oraociei12.dll
- OraOps12.dll
【问题讨论】:
-
您愿意为第三方连接器付费吗?换句话说,如果你需要的话,你的雇主愿意花几百美元购买一些软件,这项工作是否适合?
-
第三方连接器的名称是什么?
-
不要尝试通过 dll 来执行这个 dll 充满问题,而是查看“XCOPY”安装。它更小,您可以将其嵌入到您自己的安装中。 oracle.com/technetwork/topics/dotnet/downloads/index.html
-
自 2009 年左右以来,我一直在使用 DevArt 的 dotConnect for Oracle。它确实需要花钱,但它消除了对本地 Oracle 客户端(如托管 ODP)的依赖,并且仍然支持批量等高级 OCI 功能插入和更新。当然,所有托管 DLL 都可以进行 GAC 化或本地化。
标签: c# .net oracle dll odp.net