sql >> Database >  >> RDS >> Oracle

BadImageFormatException. Dit gebeurt bij het uitvoeren in 64-bits modus met de 32-bits Oracle-clientcomponenten geïnstalleerd

Een oplossing is om zowel x86 (32-bit) als x64 Oracle Clients op je computer te installeren, dan maakt het niet uit op welke architectuur je applicatie draait.

Hier een instructie om x86 en x64 Oracle-client op één machine te installeren:

Aannames:Oracle Home heet OraClient11g_home1 , Clientversie is 11gR2

  • Verwijder optioneel een geïnstalleerde Oracle-client (zie Hoe Oracle 11g (client) te de-installeren / volledig te verwijderen? als u problemen ondervindt)

  • Download en installeer Oracle x86 Client, bijvoorbeeld in C:\Oracle\11.2\Client_x86

  • Download en installeer Oracle x64 Client in een andere map , bijvoorbeeld naar C:\Oracle\11.2\Client_x64

  • Open de opdrachtregeltool, ga naar de map %WINDIR%\System32 (meestal C:\Windows\System32 ) en maak een symbolische link ora112 naar map C:\Oracle\11.2\Client_x64 (zie sectie commando's hieronder)

  • Ga naar map %WINDIR%\SysWOW64 (meestal C:\Windows\SysWOW64 ) en maak een symbolische link ora112 naar map C:\Oracle\11.2\Client_x86 , (zie hieronder)

  • Wijzig het PATH omgevingsvariabele, vervang alle vermeldingen zoals C:\Oracle\11.2\Client_x86 en C:\Oracle\11.2\Client_x64 door C:\Windows\System32\ora112 , respectievelijk hun \bin submap. Opmerking:C:\Windows\SysWOW64\ora112 mag zich niet in een PATH-omgeving bevinden.

  • Stel indien nodig uw ORACLE_HOME . in omgevingsvariabele naar C:\Windows\System32\ora112

  • Open uw Register-editor. Registerwaarde instellen HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME naar C:\Windows\System32\ora112

  • Registerwaarde instellen HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME naar C:\Windows\System32\ora112 (niet C:\Windows\SysWOW64\ora112 )

  • Je bent klaar! Nu kunt u de x86- en x64 Oracle-client naadloos samen gebruiken, d.w.z. een x86-toepassing laadt de x86-bibliotheken, een x64-toepassing laadt de x64-bibliotheken zonder enige verdere wijziging op uw systeem.

  • Waarschijnlijk is het een verstandige optie om uw TNS_ADMIN . in te stellen omgevingsvariabele (resp. TNS_ADMIN vermeldingen in het register) naar een gemeenschappelijke locatie, bijvoorbeeld TNS_ADMIN=C:\Oracle\Common\network .

Commando's om symbolische links te maken:

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

Opmerkingen:

Beide symbolische links moeten dezelfde naam hebben, b.v. ora112 .

Ondanks hun namen map C:\Windows\System32 bevat de x64-bibliotheken, terwijl C:\Windows\SysWOW64 bevat de x86 (32-bit) bibliotheken. Raak niet in de war.



  1. Hoe Cosd() werkt in PostgreSQL

  2. Zijn kolom- en tabelnaam hoofdlettergevoelig in MySQL?

  3. MySQL ABS() Functie – Retourneert de absolute waarde van een getal

  4. Hoe genereer je een reeks getallen tussen twee getallen?