sql >> Base de Datos >  >> RDS >> Oracle

BadImageFormatException. Esto ocurrirá cuando se ejecute en modo de 64 bits con los componentes de cliente de Oracle de 32 bits instalados

Una solución es instalar Clientes Oracle x86 (32 bits) y x64 en su máquina, luego no importa en qué arquitectura se esté ejecutando su aplicación.

Aquí una instrucción para instalar el cliente Oracle x86 y x64 en una máquina:

Suposiciones:Oracle Home se llama OraClient11g_home1 , la versión del cliente es 11gR2

  • Opcionalmente, elimine cualquier cliente de Oracle instalado (consulte ¿Cómo desinstalar/eliminar completamente Oracle 11g (cliente)? ​​si tiene problemas)

  • Descargue e instale Oracle x86 Client, por ejemplo, en C:\Oracle\11.2\Client_x86

  • Descargue e instale Oracle x64 Client en una carpeta diferente , por ejemplo a C:\Oracle\11.2\Client_x64

  • Abra la herramienta de línea de comandos, vaya a la carpeta %WINDIR%\System32 (normalmente C:\Windows\System32 ) y crea un enlace simbólico ora112 a la carpeta C:\Oracle\11.2\Client_x64 (ver la sección de comandos a continuación)

  • Cambiar a la carpeta %WINDIR%\SysWOW64 (normalmente C:\Windows\SysWOW64 ) y crea un enlace simbólico ora112 a la carpeta C:\Oracle\11.2\Client_x86 , (ver más abajo)

  • Modificar la PATH variable de entorno, reemplace todas las entradas como C:\Oracle\11.2\Client_x86 y C:\Oracle\11.2\Client_x64 por C:\Windows\System32\ora112 , respectivo su \bin subcarpeta. Nota:C:\Windows\SysWOW64\ora112 no debe estar en el entorno PATH.

  • Si es necesario, configure su ORACLE_HOME variable de entorno a C:\Windows\System32\ora112

  • Abra su Editor del Registro. Establecer el valor del Registro HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME a C:\Windows\System32\ora112

  • Establezca el valor del Registro HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME a C:\Windows\System32\ora112 (no C:\Windows\SysWOW64\ora112 )

  • ¡Estás listo! Ahora puede usar el cliente Oracle x86 y x64 sin problemas juntos, es decir, una aplicación x86 cargará las bibliotecas x86, una aplicación x64 cargará las bibliotecas x64 sin ninguna modificación adicional en su sistema.

  • Probablemente sea una buena opción configurar su TNS_ADMIN variable de entorno (resp. TNS_ADMIN entradas en el Registro) a una ubicación común, por ejemplo, TNS_ADMIN=C:\Oracle\Common\network .

Comandos para crear enlaces simbólicos:

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

Notas:

Ambos enlaces simbólicos deben tener el mismo nombre, p. ora112 .

A pesar de sus nombres carpeta C:\Windows\System32 contiene las bibliotecas x64, mientras que C:\Windows\SysWOW64 contiene las bibliotecas x86 (32 bits). No te confundas.