¿Cómo instaló Oracle Client de 32 bits y 64 bits?
Eche un vistazo a esta instrucción:BadImageFormatException. Esto ocurrirá cuando se ejecute en modo de 64 bits con los componentes de cliente de Oracle de 32 bits instalados
Versión corta:
Su Excel es de 32 bits e intenta usar Oracle de 32 bits. Supongo que inicia la versión de 64 bits de "Administrador ODBC"; puede haber una falta de coincidencia. O tienes un problema en tu PATH
con respecto a %ORACLE_HOME%
y/o %ORACLE_HOME%\bin
carpeta
Versión larga:
Su Excel es de 32 bits, por lo que, en general, hizo el enfoque correcto al colocar el Cliente de 32 bits en PATH
y para ORACLE_HOME
, no puede mezclar ensamblajes de 32 bits y 64 bits en un solo proceso. Por cierto, cuando siga las instrucciones anteriores, su Windows administrará esto automáticamente.
Supongo que instaló Oracle Instant Client. El Instant Client predeterminado no incluye ningún controlador ODBC ni Oracle Data Provider (ODP.NET, Oracle.DataAccess.Client
)
ODBC
Puede tener 2 controladores ODBC, uno de Oracle normalmente llamado como Oracle en OraClient12_home1 y uno de Microsoft llamado Microsoft ODBC para Oracle (que debe instalarse de forma predeterminada en la instalación de Windows; sin embargo, también requiere un cliente de Oracle).
El controlador ODBC de Oracle está disponible para 32 bits y 64 bits, el controlador de Microsoft sale solo para 32 bits. Tiene 2 administradores ODBC, 32 bits (ejecute c:\Windows\SysWOW64\odbcad32.exe
) y 64 bits (ejecute c:\Windows\System32\odbcad32.exe
). Allí debería ver los controladores instalados para 32 resp. 64 bits.
Proveedor de datos de Oracle
Para el proveedor de datos, tiene una situación similar. Tiene uno de Microsoft (Proveedor de datos de Microsoft .NET Framework para Oracle , System.Data.OracleClient
) y de Oracle (Proveedor de datos de Oracle para .NET , Oracle.DataAccess.Client
, varias versiones). Ambos están disponibles para 32 bits y 64 bits.
En principio, no importa qué controlador/proveedor utilice para conectarse a Oracle, solo la arquitectura (es decir, 32 frente a 64 bits) debe coincidir. Cada controlador/proveedor requiere una instalación de Oracle Client acorde. Todos los controladores/proveedores de Microsoft han quedado obsoletos, debe preferir los de Oracle (como se indica en el mensaje de advertencia)
Otros
Oracle proporciona también el ODP.NET, Managed Driver que no requiere ninguna instalación adicional de Oracle Client y se ejecuta tanto en 32 bits como en 64 bits. Sin embargo, no sé si puede usar esto en Excel.
Por último, pero no menos importante, también tiene un proveedor OLE DB. Nuevamente uno de Microsoft (Microsoft OLE DB Provider for Oracle ) y uno de Oracle (Proveedor de Oracle para OLE DB ). El proveedor de Microsoft solo existe para 32 bits y está obsoleto.