Jak zainstalowałeś 32-bitowego i 64-bitowego klienta Oracle?
Proszę spojrzeć na tę instrukcję:BadImageFormatException. Nastąpi to podczas pracy w trybie 64-bitowym z zainstalowanymi 32-bitowymi komponentami klienta Oracle
Krótka wersja:
Twój Excel jest 32-bitowy i próbujesz użyć 32-bitowej Oracle. Zakładam, że uruchamiasz 64-bitową wersję "Administratora ODBC" - może występować niezgodność. Lub masz problem ze swoją PATH
dotyczące %ORACLE_HOME%
i/lub %ORACLE_HOME%\bin
folder
Długa wersja:
Twój Excel jest 32-bitowy, więc ogólnie zrobiłeś właściwe podejście, umieszczając 32-bitowego klienta w PATH
i dla ORACLE_HOME
, nie można mieszać zestawów 32-bitowych i 64-bitowych w jednym procesie. Btw, jeśli postępujesz zgodnie z powyższymi instrukcjami, system Windows będzie tym zarządzał automatycznie.
Zakładam, że zainstalowałeś Oracle Instant Client. Domyślny klient błyskawiczny nie zawiera żadnego sterownika ODBC ani dostawcy danych Oracle (ODP.NET, Oracle.DataAccess.Client
)
ODBC
Możesz mieć 2 sterowniki ODBC, jeden z Oracle zwykle nazywany Oracle w OraClient12_home1 i jeden od Microsoftu o nazwie Microsoft ODBC for Oracle (która powinna być domyślnie zainstalowana w systemie Windows, ale wymaga również klienta Oracle).
Sterownik ODBC firmy Oracle jest dostępny dla wersji 32-bitowej i 64-bitowej, sterownik Microsoft kończy działanie tylko dla wersji 32-bitowej. Masz 2 administratorów ODBC, 32-bitowych (uruchom c:\Windows\SysWOW64\odbcad32.exe
) i 64bit (uruchom c:\Windows\System32\odbcad32.exe
). Tam powinieneś zobaczyć zainstalowane sterowniki dla 32 odp. 64-bitowy.
Dostawca danych Oracle
W przypadku Dostawcy danych masz podobną sytuację. Masz jeden od Microsoft (Dostawca danych Microsoft .NET Framework dla Oracle , System.Data.OracleClient
) i Oracle (Dostawca danych Oracle dla .NET , Oracle.DataAccess.Client
, kilka wersji). Oba są dostępne dla wersji 32-bitowej i 64-bitowej.
W zasadzie nie ma znaczenia, którego sterownika/dostawcy używasz do łączenia się z Oracle - wystarczy architektura (tj. 32-bitowa vs. 64-bitowa). Każdy sterownik/dostawca wymaga odpowiedniej instalacji klienta Oracle. Wszystkie sterowniki/dostawcy firmy Microsoft zostały przestarzałe, powinieneś preferować te firmy Oracle (jak podano w komunikacie ostrzegawczym)
Inne
Oracle dostarcza również ODP.NET, zarządzany sterownik który nie wymaga dalszej instalacji klienta Oracle i działa zarówno w wersji 32-bitowej, jak i 64-bitowej. Nie wiem jednak, czy możesz użyć tego w programie Excel.
Wreszcie, masz również dostawcę OLE DB. Ponownie jeden od Microsoft (Microsoft OLE DB Provider for Oracle ) i jeden z Oracle (Dostawca Oracle dla OLE DB ). Dostawca Microsoft istnieje tylko w wersji 32-bitowej i został przestarzały.