Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

BadImageFormatException. Isso ocorrerá ao executar no modo de 64 bits com os componentes do cliente Oracle de 32 bits instalados


Uma solução é instalar Oracle Clients x86 (32 bits) e x64 em sua máquina, então não importa em qual arquitetura seu aplicativo está sendo executado.

Aqui uma instrução para instalar o cliente Oracle x86 e x64 em uma máquina:

Suposições:Oracle Home é chamado de OraClient11g_home1 , a versão do cliente é 11gR2

  • Opcionalmente, remova qualquer cliente Oracle instalado (consulte Como desinstalar / remover completamente o Oracle 11g (cliente)? ​​se tiver problemas)

  • Baixe e instale o Oracle x86 Client, por exemplo, em C:\Oracle\11.2\Client_x86

  • Baixe e instale o Oracle x64 Client em uma pasta diferente , por exemplo, para C:\Oracle\11.2\Client_x64

  • Abra a ferramenta de linha de comando, vá para a pasta %WINDIR%\System32 (normalmente C:\Windows\System32 ) e crie um link simbólico ora112 para a pasta C:\Oracle\11.2\Client_x64 (veja a seção de comandos abaixo)

  • Mude para a pasta %WINDIR%\SysWOW64 (normalmente C:\Windows\SysWOW64 ) e crie um link simbólico ora112 para a pasta C:\Oracle\11.2\Client_x86 , (ver abaixo)

  • Modifique o PATH variável de ambiente, substitua todas as entradas como C:\Oracle\11.2\Client_x86 e C:\Oracle\11.2\Client_x64 por C:\Windows\System32\ora112 , respectivos \bin subpasta. Observação:C:\Windows\SysWOW64\ora112 não deve estar no ambiente PATH.

  • Se necessário, defina seu ORACLE_HOME variável de ambiente para C:\Windows\System32\ora112

  • Abra o seu Editor do Registro. Definir valor do Registro HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME para C:\Windows\System32\ora112

  • Definir valor do Registro HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME para C:\Windows\System32\ora112 (não C:\Windows\SysWOW64\ora112 )

  • Você terminou! Agora você pode usar o cliente Oracle x86 e x64 sem problemas juntos, ou seja, um aplicativo x86 carregará as bibliotecas x86, um aplicativo x64 carregará as bibliotecas x64 sem nenhuma modificação adicional em seu sistema.

  • Provavelmente é uma opção sábia definir seu TNS_ADMIN variável de ambiente (resp. TNS_ADMIN entradas no Registro) para um local comum, por exemplo TNS_ADMIN=C:\Oracle\Common\network .

Comandos para criar links 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 os links simbólicos devem ter o mesmo nome, por exemplo. ora112 .

Apesar de sua pasta de nomes C:\Windows\System32 contém as bibliotecas x64, enquanto C:\Windows\SysWOW64 contém as bibliotecas x86 (32 bits). Não se confunda.