Como você instalou o Oracle Client de 32 bits e 64 bits?
Dê uma olhada nesta instrução:BadImageFormatException. Isso ocorrerá ao executar no modo de 64 bits com os componentes do cliente Oracle de 32 bits instalados
Versão curta:
Seu excel é de 32 bits e você tenta usar o Oracle de 32 bits. Suponho que você inicie a versão de 64 bits do "ODBC Administrator" - pode haver uma incompatibilidade. Ou você tem um problema em seu
PATH
sobre %ORACLE_HOME%
e/ou %ORACLE_HOME%\bin
pasta Versão longa:
Seu Excel é de 32 bits, então, em geral, você fez a abordagem correta colocando o cliente de 32 bits em
PATH
e para ORACLE_HOME
, você não pode misturar assemblies de 32 bits e 64 bits em um processo. Aliás, quando você seguir as instruções acima, seu Windows gerenciará isso automaticamente. Suponho que você instalou o Oracle Instant Client. O Instant Client padrão não inclui nenhum driver ODBC nem Oracle Data Provider (ODP.NET,
Oracle.DataAccess.Client
) ODBC
Você pode ter 2 drivers ODBC, um da Oracle normalmente chamado como Oracle em OraClient12_home1 e um da Microsoft chamado Microsoft ODBC para Oracle (que deve ser instalado por padrão na instalação do Windows, mas também requer um Oracle Client).
O driver ODBC da Oracle está disponível para 32 bits e 64 bits, o driver da Microsoft sai apenas para 32 bits. Você tem 2 Administradores ODBC, 32 bits (execute
c:\Windows\SysWOW64\odbcad32.exe
) e 64 bits (execute c:\Windows\System32\odbcad32.exe
). Lá você deve ver os drivers instalados por 32 resp. 64 bits. Provedor de dados Oracle
Para o Provedor de Dados, você tem situação semelhante. Você tem um da Microsoft (Microsoft .NET Framework Data Provider for Oracle ,
System.Data.OracleClient
) e da Oracle (Oracle Data Provider para .NET , Oracle.DataAccess.Client
, várias versões). Ambos estão disponíveis para 32 bits e 64 bits. Em princípio, não importa qual driver/provedor você usa para se conectar ao Oracle - apenas a arquitetura (ou seja, 32 vs. 64 bits) deve corresponder. Cada driver/provedor requer a instalação do Oracle Client. Todos os drivers/provedores da Microsoft foram preteridos, você deve preferir os da Oracle (conforme indicado na mensagem de aviso)
Outros
A Oracle também fornece o ODP.NET, Driver Gerenciado que não requer nenhuma instalação adicional do Oracle Client e é executado em 32 bits e 64 bits. No entanto, não sei se você pode usar isso no Excel.
Por último, mas não menos importante, você também tem o provedor OLE DB. Novamente um da Microsoft (Microsoft OLE DB Provider for Oracle ) e um da Oracle (Oracle Provider for OLE DB ). O provedor da Microsoft existe apenas para 32 bits e foi preterido.