sql >> データベース >  >> RDS >> Oracle

BadImageFormatException。これは、32ビットのOracleクライアントコンポーネントがインストールされた64ビットモードで実行している場合に発生します。

    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ビット)ライブラリが含まれています。混乱しないでください。



    1. MySQLシャーディングアプローチ?

    2. pandas DataFrameをPostgreSQLテーブルにアップサートする方法は?

    3. ハロウィーンの問題–パート2

    4. 分割された区切り文字列を列に挿入するいくつかの方法