Hoe heb je 32bit en 64bit Oracle Client geïnstalleerd?
Bekijk deze instructie:BadImageFormatException. Dit gebeurt bij het uitvoeren in 64-bits modus met de 32-bits Oracle-clientcomponenten geïnstalleerd
Korte versie:
Je excel is 32bit en je probeert de 32bit Oracle te gebruiken. Ik neem aan dat u de 64-bits versie van "ODBC Administrator" start - er kan een mismatch zijn. Of je hebt een probleem met je PATH
met betrekking tot %ORACLE_HOME%
en/of %ORACLE_HOME%\bin
map
Lange versie:
Je Excel is 32bit, dus over het algemeen heb je de juiste aanpak gevolgd door de 32bit Client in PATH
te zetten en voor ORACLE_HOME
, kunt u 32-bits en 64-bits assemblages niet in één proces combineren. Trouwens, als je de bovenstaande instructies volgt, zal je Windows dit automatisch beheren.
Ik neem aan dat u de Oracle Instant Client hebt geïnstalleerd. De standaard Instant Client bevat geen ODBC-stuurprogramma of Oracle Data Provider (ODP.NET, Oracle.DataAccess.Client
)
ODBC
Mogelijk hebt u 2 ODBC-stuurprogramma's, een van Oracle die gewoonlijk wordt genoemd als Oracle in OraClient12_home1 en een van Microsoft genaamd Microsoft ODBC voor Oracle (die standaard geïnstalleerd zou moeten worden door Windows, maar er is ook een Oracle Client voor nodig).
Het ODBC-stuurprogramma van Oracle is beschikbaar voor 32-bits en 64-bits, het Microsoft-stuurprogramma wordt alleen afgesloten voor 32-bits. U hebt 2 ODBC-beheerders, 32-bits (voer c:\Windows\SysWOW64\odbcad32.exe
uit ) en 64bit (voer c:\Windows\System32\odbcad32.exe
uit ). Daar zou u geïnstalleerde stuurprogramma's moeten zien voor 32 resp. 64bit.
Oracle-gegevensprovider
Voor de gegevensprovider heeft u een vergelijkbare situatie. U hebt er een van Microsoft (Microsoft .NET Framework Data Provider for Oracle , System.Data.OracleClient
) en van Oracle (Oracle Data Provider for .NET , Oracle.DataAccess.Client
, verschillende versies). Beide zijn beschikbaar voor 32-bits en 64-bits.
In principe maakt het niet uit welke driver/provider je gebruikt om verbinding te maken met Oracle - alleen de architectuur (d.w.z. 32 vs. 64 bit) moet overeenkomen. Elke driver/provider vereist overeenkomstige Oracle Client-installatie. Alle stuurprogramma's/providers van Microsoft zijn verouderd, u moet de voorkeur geven aan de Oracle-stuurprogramma's (zoals vermeld in het waarschuwingsbericht)
Anderen
Oracle biedt ook de ODP.NET, Managed Driver die geen verdere Oracle Client-installatie vereist en op zowel 32-bits als 64-bits draait. Ik weet echter niet of je dit in Excel kunt gebruiken.
Last but not least heb je ook de OLE DB-provider. Wederom een van Microsoft (Microsoft OLE DB Provider for Oracle ) en een van Oracle (Oracle Provider voor OLE DB ). De Microsoft-provider bestaat alleen voor 32-bits en is verouderd.