簡體   English   中英

Oracle.DataAccess.Client 依賴項

[英]Oracle.DataAccess.Client Dependencies

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

我想知道我需要能夠從數據庫中讀取然后在 Oracle 中執行批量復制的所有 dll。 目前,我們只使用一個 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
  • oraocci12.dll
  • oraociei12.dll
  • OraOps12.dll

我設法讓它工作。

  • 下載適用於您的項目的 ODAC 的良好版本。
  1. 對於32 位項目,您需要下載 ODAC12..._x32.zip (ODAC121021Xcopy_32bit.zip)。

  2. 對於64 位項目,您需要下載 ODAC12..._x64.zip

  • 根據您想要的版本(32 位與 64 位)將其解壓縮到一個空文件夾中。

  • 通過在 Windows 搜索欄中搜索 *.dll 來定位到instantclient_12_1文件夾中的所有 dll。 你需要抓住:

  1. oci.dll

  2. ociw32.dll

  3. orannzsbb12.dll

  4. oraociei12.dll

  5. oraons.dll

  • 根據您的 .NET 版本,在odp.net4odp.net20文件夾中找到這兩個 dll:
  1. OraOps12.dll

  2. Oracle.DataAccess.dll

  • 復制那些 32 位 dll 或 64 位 dll 並將它們直接放在項目的輸出路徑中。 例如在C:\\...\\vsProjects\\BulkInsert\\BulkInsert\\bin\\Debug

  • 通過指向輸出路徑瀏覽項目中的 Oracle.DataAccess.dll。

解決方案資源管理器截圖

UPD:最新版本的 ODP.NET 提供程序(從此處下載)在其文件名中有“19”后綴而不是“12”:

  1. oci.dll

  2. ociw32.dll

  3. orannzsbb19.dll

  4. oraociei19.dll

  5. oraons.dll

  6. OraOps19.dll

  7. Oracle.DataAccess.dll

我遇到過類似的問題; 安裝 oracle 數據訪問組件 (odac ODTwithODAC122010.zip ) 以獲取解決方案。

看起來您沒有安裝 Oracle Instant 客戶端(或任何其他版本的 Oracle 客戶端)。 這是非托管 ODP.NET 提供程序的先決條件。

安裝 Oracle Instant 客戶端就可以了。 否則你只會遇到麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM