1つの解決策は、x86(32ビット)とx64の両方のOracleクライアントをマシンにインストールすることです。そうすれば、アプリケーションがどのアーキテクチャで実行されているかは関係ありません。
x86およびx64Oracleクライアントを1台のマシンにインストールする手順は次のとおりです。
前提条件:OracleHomeはOraClient11g_home1と呼ばれます 、クライアントバージョンは11gR2です
-
オプションで、インストールされているOracleクライアントを削除します(問題が発生した場合は、Oracle 11g(クライアント)をアンインストール/完全に削除する方法を参照してください)
-
Oracle x86クライアントをダウンロードして、たとえば
C:\Oracle\11.2\Client_x86にインストールします。 -
Oraclex64クライアントを別のフォルダにダウンロードしてインストールします 、たとえば
C:\Oracle\11.2\Client_x64 -
コマンドラインツールを開き、フォルダ
%WINDIR%\System32に移動します (通常、C:\Windows\System32)そしてシンボリックリンクora112を作成します フォルダC:\Oracle\11.2\Client_x64に移動します (以下のコマンドセクションを参照) -
フォルダ
%WINDIR%\SysWOW64に移動します (通常はC:\Windows\SysWOW64)そしてシンボリックリンクora112を作成します フォルダC:\Oracle\11.2\Client_x86へ 、(以下を参照) -
PATHを変更します 環境変数。C:\Oracle\11.2\Client_x86などのすべてのエントリを置き換えます およびC:\Oracle\11.2\Client_x64C:\Windows\System32\ora112による 、それぞれの\binサブフォルダー。注:C:\Windows\SysWOW64\ora112PATH環境にあることはできません。 -
必要に応じて、
ORACLE_HOMEを設定しますC:\Windows\System32\ora112への環境変数 -
レジストリエディタを開きます。レジストリ値を設定します
HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOMEC:\Windows\System32\ora112へ -
レジストリ値を設定します
HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOMEC:\Windows\System32\ora112へ (C:\Windows\SysWOW64\ora112ではありません ) -
これで完了です。これで、x86とx64のOracleクライアントをシームレスに使用できます。つまり、x86アプリケーションはx86ライブラリをロードし、x64アプリケーションはシステムに追加の変更を加えることなくx64ライブラリをロードします。
-
おそらく、
TNS_ADMINを設定するのが賢明なオプションです。 環境変数(またはTNS_ADMINレジストリ内のエントリ)を共通の場所(TNS_ADMIN=C:\Oracle\Common\networkなど)に移動します 。
シンボリックリンクを作成するコマンド:
cd C:\Windows\System32
mklink /d ora112 C:\Oracle\11.2\Client_x64
cd C:\Windows\SysWOW64
mklink /d ora112 C:\Oracle\11.2\Client_x86
注:
両方のシンボリックリンクは同じ名前である必要があります。 ora112 。
それらの名前フォルダにもかかわらずC:\Windows\System32 x64ライブラリが含まれていますが、C:\Windows\SysWOW64 x86(32ビット)ライブラリが含まれています。混乱しないでください。