32ビットおよび64ビットのOracleクライアントをどのようにインストールしましたか?
この手順をご覧ください:BadImageFormatException。これは、32ビットのOracleクライアントコンポーネントがインストールされた64ビットモードで実行している場合に発生します
ショートバージョン:
あなたのExcelは32ビットであり、あなたは32ビットのOracleを使おうとしています。 「ODBCAdministrator」の64ビットバージョンを起動すると仮定します-不一致がある可能性があります。または、PATH
に問題があります %ORACLE_HOME%
について および/または%ORACLE_HOME%\bin
フォルダー
ロングバージョン:
Excelは32ビットであるため、一般に、32ビットクライアントをPATH
に配置することで正しいアプローチを実行しました。 およびORACLE_HOME
の場合 、1つのプロセスで32ビットと64ビットのアセンブリを混在させることはできません。ところで、上記の手順に従うと、Windowsがこれを自動的に管理します。
OracleInstantClientをインストールしたと仮定します。デフォルトのInstantClientには、ODBCドライバーもOracle Data Provider(ODP.NET、Oracle.DataAccess.Client
)も含まれていません。 )
ODBC
2つのODBCドライバーがある場合があります。1つは通常OraClient12_home1のOracleのように呼ばれるOracleのドライバーです。 1つはMicrosoftODBC for Oracleと呼ばれるMicrosoftの製品です。 (これはデフォルトでWindowsインストールでインストールする必要がありますが、Oracleクライアントも必要です)。
OracleのODBCドライバーは32ビットと64ビットで使用でき、Microsoftドライバーは32ビットでのみ終了します。 2つのODBCアドミニストレーター、32ビットがあります(c:\Windows\SysWOW64\odbcad32.exe
を実行します) )および64ビット(c:\Windows\System32\odbcad32.exe
を実行 )。そこに、32応答用にインストールされたドライバが表示されます。 64ビット。
Oracleデータプロバイダー
データプロバイダーの場合も同様の状況になります。 Microsoftからのものがあります( Microsoft .NET Framework Data Provider for Oracle 、System.Data.OracleClient
)およびOracle( Oracle Data Provider for .NET )から 、Oracle.DataAccess.Client
、いくつかのバージョン)。どちらも32ビットと64ビットで利用できます。
原則として、Oracleへの接続に使用するドライバー/プロバイダーは関係ありません。アーキテクチャー(つまり、32ビットと64ビット)が一致している必要があります。各ドライバ/プロバイダは、OracleClientのインストールに応じて必要です。 Microsoftのすべてのドライバー/プロバイダーは非推奨になりました。(警告メッセージに記載されているように)Oracleのものを優先する必要があります
その他
オラクルは、 ODP.NET、マネージドドライバーも提供しています。 これは、Oracle Clientをさらにインストールする必要がなく、32ビットと64ビットの両方で実行されます。ただし、これをExcelで使用できるかどうかはわかりません。
最後になりましたが、OLEDBプロバイダーもあります。これもMicrosoftからのものです( Microsoft OLE DB Provider for Oracle )およびOracleからの1つ( Oracle Provider for OLE DB )。 Microsoftプロバイダーは32ビット専用であり、非推奨になっています。