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_x64
C:\Windows\System32\ora112
による 、それぞれの\bin
サブフォルダー。注:C:\Windows\SysWOW64\ora112
PATH環境にあることはできません。 -
必要に応じて、
ORACLE_HOME
を設定しますC:\Windows\System32\ora112
への環境変数 -
レジストリエディタを開きます。レジストリ値を設定します
HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME
C:\Windows\System32\ora112
へ -
レジストリ値を設定します
HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME
C:\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ビット)ライブラリが含まれています。混乱しないでください。