Oracle
 sql >> Database >  >> RDS >> Oracle

BadImageFormatException. Ciò si verificherà durante l'esecuzione in modalità a 64 bit con i componenti client Oracle a 32 bit installati

Una soluzione consiste nell'installare client Oracle x86 (32 bit) e x64 sul computer, quindi non importa su quale architettura è in esecuzione l'applicazione.

Ecco un'istruzione per installare il client Oracle x86 e x64 su una macchina:

Presupposti:Oracle Home si chiama OraClient11g_home1 , la versione client è 11gR2

  • Facoltativamente, rimuovere qualsiasi client Oracle installato (consultare Come disinstallare/rimuovere completamente Oracle 11g (client)? in caso di problemi)

  • Scarica e installa Oracle x86 Client, ad esempio in C:\Oracle\11.2\Client_x86

  • Scarica e installa Oracle x64 Client in una cartella diversa , ad esempio in C:\Oracle\11.2\Client_x64

  • Apri lo strumento della riga di comando, vai alla cartella %WINDIR%\System32 (in genere C:\Windows\System32 ) e creare un collegamento simbolico ora112 nella cartella C:\Oracle\11.2\Client_x64 (vedi sotto la sezione comandi)

  • Passa alla cartella %WINDIR%\SysWOW64 (in genere C:\Windows\SysWOW64 ) e creare un collegamento simbolico ora112 nella cartella C:\Oracle\11.2\Client_x86 , (vedi sotto)

  • Modifica il PATH variabile di ambiente, sostituisci tutte le voci come C:\Oracle\11.2\Client_x86 e C:\Oracle\11.2\Client_x64 da C:\Windows\System32\ora112 , rispettivamente il loro \bin sottocartella. Nota:C:\Windows\SysWOW64\ora112 non deve essere nell'ambiente PATH.

  • Se necessario, imposta il tuo ORACLE_HOME variabile di ambiente in C:\Windows\System32\ora112

  • Apri il tuo Editor del Registro di sistema. Imposta il valore del Registro di sistema HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME a C:\Windows\System32\ora112

  • Imposta il valore del Registro di sistema HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME a C:\Windows\System32\ora112 (non C:\Windows\SysWOW64\ora112 )

  • Hai fatto! Ora puoi utilizzare i client Oracle x86 e x64 senza soluzione di continuità, ovvero un'applicazione x86 caricherà le librerie x86, un'applicazione x64 caricherà le librerie x64 senza ulteriori modifiche sul tuo sistema.

  • Probabilmente è un'opzione saggia impostare il tuo TNS_ADMIN variabile di ambiente (risp. TNS_ADMIN voci nel Registro di sistema) in una posizione comune, ad esempio TNS_ADMIN=C:\Oracle\Common\network .

Comandi per creare collegamenti simbolici:

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

Note:

Entrambi i collegamenti simbolici devono avere lo stesso nome, ad es. ora112 .

Nonostante i loro nomi cartella C:\Windows\System32 contiene le librerie x64, mentre C:\Windows\SysWOW64 contiene le librerie x86 (32 bit). Non confonderti.