wake-up-neo.com

Oracle.DataAccess.Client-Abhängigkeiten

Zunächst möchte ich Oracle.DataAccess.dll verwenden, um OracleBulkCopy zu verwenden.

Ich möchte alle Dlls kennen, die ich aus einer Datenbank lesen und dann eine Bulkcopy in Oracle ausführen muss. Derzeit verwenden wir nur eine einzige DLL, um alle Lesevorgänge aus Datenbanken durchzuführen. Wir verwenden Oracle.ManagedDataAccess.Client. Aber ich kann es nicht verwenden, um eine bulkCopy durchzuführen.

Ich möchte ODP.NET nicht für die Benutzer installieren, ich möchte die DLL direkt in das Programm aufnehmen. Ich möchte also wissen, welche Mindest-DLLs erforderlich sind, um den Oracle.DataAccess.dll in 32bit und in 64bit verwenden zu können.

Ich weiß, dass es einige alte Post darüber gibt, aber es ist ziemlich alt und die aufgelisteten Dlls sind nicht mehr aktuell. Ich kann einige von ihnen nicht finden.

Ich habe ODP.net für ODAC12 installiert und alle in diesem post aufgelisteten Dlls erhalten. Ich habe es auch mit post versucht. Die aufgelisteten DLLs weisen auf die Version 11 hin.

Ich habe ein Dummy-Projekt erstellt, das eine Verbindung öffnet, eine Tabelle liest und in eine andere Tabelle masst. Ich habe die aufgelisteten Dlls aus den Beiträgen im Stammverzeichnis des Projekts kopiert und Oracle.DataAccess.dll in das Projekt eingefügt. 

Wenn ich mein Programm in 64-Bit laufe, erhalte ich folgende Fehlermeldung:

Oracle.DataAccess, Version = 4.121.2.0, .__ konnte Datei oder Assembly nicht laden. Kultur = neutral, PublicKeyToken = 89b483f429c47342 '

Wenn ich es in 32 Bit starte, erhalte ich diesen Fehler:

DLL 'OraOps12.dll' kann nicht geladen werden: Das angegebene Modul konnte nicht .__ sein. gefunden (Ausnahme von HRESULT: 0x8007007E) "

Die DLLs, die ich eingeschlossen habe, sind:

  • oci.dll
  • ociw32.dll
  • Oracle.DataAccess.dll
  • orannzsbb12.dll
  • oraocci12.dll
  • oraociei12.dll
  • OraOps12.dll
8
billybob

Ich habe es geschafft, dass es funktioniert.

  • Laden Sie die gute Version des ODAC herunter, die für Ihr Projekt bestimmt ist.

    1. Für ein 32bit - Projekt müssen Sie den ODAC12 ..._ x32.Zip (ODAC121021Xcopy_32bit.Zip) herunterladen.

    2. Für das 64bit - Projekt müssen Sie die ODAC12 ..._ x64.Zip herunterladen

  • Entpacken Sie es je nach gewünschter Version in einen leeren Ordner (32bit vs. 64bit).

  • Suchen Sie im Ordner instantclient_12_1 alle DLLs, indem Sie * .dll in der Windows-Suchleiste durchsuchen. Sie müssen greifen:

  1. oci.dll

  2. ociw32.dll

  3. orannzsbb12.dll

  4. oraociei12.dll

  5. oraons.dll

  • Suchen Sie im Ordner odp.net4 oder odp.net20 je nach Ihrer .NET-Version diese beiden DLLs:
  1. OraOps12.dll

  2. Oracle.DataAccess.dll

  • Kopieren Sie diese 32-Bit-DLLs oder 64-Bit-DLLs und fügen Sie sie direkt in den Ausgabepfad Ihres Projekts ein. Zum Beispiel in C:\...\vsProjects\BulkInsert\BulkInsert\bin\Debug.

  • Durchsuchen Sie Oracle.DataAccess.dll in Ihrem Projekt, indem Sie auf den Ausgabepfad zeigen.

 enter image description here

12
billybob

Ich habe ein ähnliches Problem erlebt. Installieren Sie Oracle-Datenzugriffskomponenten (odac ODTwithODAC122010.Zip ) für die Lösung. 

1
engntsn

Sie haben den Oracle Instant-Client (oder keine andere Version des Oracle-Clients) installiert. Dies ist eine Voraussetzung für einen nicht verwalteten ODP.NET-Anbieter. 

Installieren Sie den Oracle Instant-Client, und es geht Ihnen gut. Sonst bekommen Sie nur Ärger.

0