sql >> Databasteknik >  >> RDS >> Oracle

BadImageFormatException. Detta inträffar när du kör i 64-bitarsläge med 32-bitars Oracle-klientkomponenter installerade

En lösning är att installera både x86 (32-bitars) och x64 Oracle Clients på din maskin, då spelar det ingen roll vilken arkitektur din applikation körs på.

Här en instruktion för att installera x86 och x64 Oracle-klienter på en dator:

Antaganden:Oracle Home heter OraClient11g_home1 , klientversionen är 11gR2

  • Ta bort eventuellt installerad Oracle-klient (se Hur man avinstallerar / tar bort Oracle 11g helt (klient)? om du har problem)

  • Ladda ner och installera Oracle x86 Client, till exempel i C:\Oracle\11.2\Client_x86

  • Ladda ner och installera Oracle x64 Client i annan mapp , till exempel till C:\Oracle\11.2\Client_x64

  • Öppna kommandoradsverktyget, gå till mappen %WINDIR%\System32 (vanligtvis C:\Windows\System32 ) och skapa en symbolisk länk ora112 till mappen C:\Oracle\11.2\Client_x64 (se kommandoavsnittet nedan)

  • Byt till mappen %WINDIR%\SysWOW64 (vanligtvis C:\Windows\SysWOW64 ) och skapa en symbolisk länk ora112 till mappen C:\Oracle\11.2\Client_x86 , (se nedan)

  • Ändra PATH miljövariabel, ersätt alla poster som C:\Oracle\11.2\Client_x86 och C:\Oracle\11.2\Client_x64 av C:\Windows\System32\ora112 , respektive deras \bin undermapp. Obs:C:\Windows\SysWOW64\ora112 får inte vara i PATH-miljö.

  • Om det behövs ställ in din ORACLE_HOME miljövariabel till C:\Windows\System32\ora112

  • Öppna din Registereditor. Ange registervärde HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME till C:\Windows\System32\ora112

  • Ange registervärde HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME till C:\Windows\System32\ora112 (inte C:\Windows\SysWOW64\ora112 )

  • Du är färdig! Nu kan du använda x86 och x64 Oracle-klienter sömlöst tillsammans, det vill säga en x86-applikation laddar x86-biblioteken, en x64-applikation laddar x64-biblioteken utan ytterligare modifieringar på ditt system.

  • Förmodligen är det ett klokt alternativ att ställa in din TNS_ADMIN miljövariabel (resp. TNS_ADMIN poster i registret) till en gemensam plats, till exempel TNS_ADMIN=C:\Oracle\Common\network .

Kommandon för att skapa symboliska länkar:

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

Anmärkningar:

Båda symboliska länkarna måste ha samma namn, t.ex. ora112 .

Trots deras namn mappen C:\Windows\System32 innehåller x64-biblioteken, medan C:\Windows\SysWOW64 innehåller x86 (32-bitars) bibliotek. Bli inte förvirrad.



  1. MySQL-fel 1093 - Kan inte ange måltabell för uppdatering i FROM-satsen

  2. Villkorlig SUM på Oracle

  3. GROUP BY i Postgres - ingen likhet för JSON-datatyp?

  4. Mallmönster och modifierare för numerisk formatering i PostgreSQL