Oracle
 sql >> Datenbank >  >> RDS >> Oracle

BadImageFormatException. Dies tritt auf, wenn Sie im 64-Bit-Modus mit installierten 32-Bit-Oracle-Clientkomponenten ausgeführt werden

Eine Lösung besteht darin, sowohl x86- (32-Bit) als auch x64-Oracle-Clients auf Ihrem Computer zu installieren, dann spielt es keine Rolle, auf welcher Architektur Ihre Anwendung ausgeführt wird.

Hier eine Anleitung zur Installation des x86- und x64-Oracle-Clients auf einem Rechner:

Annahmen:Oracle Home heißt OraClient11g_home1 , Client-Version ist 11gR2

  • Entfernen Sie optional jeden installierten Oracle-Client (siehe So deinstallieren/vollständig entfernen Sie Oracle 11g (Client)?, wenn Probleme auftreten)

  • Laden Sie den Oracle x86-Client herunter und installieren Sie ihn, beispielsweise in C:\Oracle\11.2\Client_x86

  • Laden Sie den Oracle x64-Client herunter und installieren Sie ihn in einem anderen Ordner , zum Beispiel nach C:\Oracle\11.2\Client_x64

  • Öffnen Sie das Befehlszeilentool, gehen Sie zum Ordner %WINDIR%\System32 (normalerweise C:\Windows\System32 ) und erstellen Sie einen symbolischen Link ora112 in den Ordner C:\Oracle\11.2\Client_x64 (siehe Befehlsabschnitt unten)

  • Wechseln Sie in den Ordner %WINDIR%\SysWOW64 (normalerweise C:\Windows\SysWOW64 ) und erstellen Sie einen symbolischen Link ora112 in den Ordner C:\Oracle\11.2\Client_x86 , (siehe unten)

  • Ändern Sie den PATH Umgebungsvariable, ersetzen Sie alle Einträge wie C:\Oracle\11.2\Client_x86 und C:\Oracle\11.2\Client_x64 von C:\Windows\System32\ora112 , bzw. deren \bin Unterordner. Hinweis:C:\Windows\SysWOW64\ora112 darf sich nicht in der PATH-Umgebung befinden.

  • Legen Sie bei Bedarf Ihren ORACLE_HOME fest Umgebungsvariable in C:\Windows\System32\ora112

  • Öffnen Sie Ihren Registrierungseditor. Legen Sie den Registrierungswert HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME fest nach C:\Windows\System32\ora112

  • Legen Sie den Registrierungswert HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME fest nach C:\Windows\System32\ora112 (nicht C:\Windows\SysWOW64\ora112 )

  • Du bist fertig! Jetzt können Sie den x86- und x64-Oracle-Client nahtlos zusammen verwenden, d. h. eine x86-Anwendung lädt die x86-Bibliotheken, eine x64-Anwendung lädt die x64-Bibliotheken ohne weitere Änderungen auf Ihrem System.

  • Wahrscheinlich ist es sinnvoll, Ihren TNS_ADMIN einzustellen Umgebungsvariable (bzw. TNS_ADMIN Einträge in der Registrierung) an einen gemeinsamen Speicherort, zum Beispiel TNS_ADMIN=C:\Oracle\Common\network .

Befehle zum Erstellen symbolischer Links:

cd C:\Windows\System32
mklink /d ora112 C:\Oracle\11.2\Client_x64
cd C:\Windows\SysWOW64
mklink /d ora112 C:\Oracle\11.2\Client_x86

Hinweise:

Beide symbolischen Links müssen denselben Namen haben, z. ora112 .

Trotz ihres Namens Ordner C:\Windows\System32 enthält die x64-Bibliotheken, wohingegen C:\Windows\SysWOW64 enthält die x86 (32-Bit)-Bibliotheken. Lassen Sie sich nicht verwirren.