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

InterfaceError:Oracle環境ハンドルを取得できません。 ORACLE_HOMEは正しく、SQL*Plusが接続します

    どのバージョンのWindowsを実行していますか? 32ビットですか64ビットですか?

    Oracle Instant Clientは、32 ですか。 または 64 ビット?

    Pythonのインストールは32 ですか。 または 64 ビット?

    あなたのcx_oracleは正しいバージョンですか? 32 または 64 ビット?

    MSVCR90.dllは、Microsoft Visual C ++2008SP1再頒布可能パッケージの一部です。

    32ビットバージョンが利用可能こちら 、64ビットバージョンが利用可能こちら

    IESHIMS.dllは、C:\Program Files\Internet Explorer\Ieshims.dllにあります。 (32ビットWindowsロケーションまたは64ビットWindowsロケーション)またはC:\ Program Files \ Internet Explorer(x86)\ Ieshims.dll`(64ビットWindows上の32ビットWindowsロケーション)(ご使用のWindowsのバージョンがVista以降の場合)。

    GPSVC.dllはC:\Windows\System32に存在する必要があります 。

    Dependency Walkerは、IEFrame.DLLを使用し、遅延ロードされるWindowsエラー報告によって使用されるため、これらの最後の2つのDLLが欠落していると報告します。つまり、実際には必要ない場合があります。

    cx_oracleを正常にインポートするには、依存関係のバージョンが一致していることを確認する必要があることがわかりました。また、OracleクライアントのインストールがORACLE_HOMEと一致していることを確認する必要があります。 PATH変数に%ORACLE_HOME%/binが含まれている 、これは環境変数またはレジストリに設定されており、tnsnames.oraファイルはTNS_ADMINが設定されている値に存在します。 エマニュエルで述べられているように の答え、未設定のTNS_ADMIN設定のデフォルト値は%ORACLE_HOME%\network\adminです。 。

    また、絶対に必要な場合を除いて、Oracleインストーラのインスタントクライアントバージョンを使用することはめったにありません。他のバージョンとは異なり、Path、ORACLE_HOME、またはTNS_ADMINが正しく設定または維持されていることを常に確認しているわけではないため、tnsnames.oraおよびOCI.dllが正しく設定されていません。見つかった。同じマシンに複数のPythonバージョンまたはOracleバージョンがある場合、これはさらに複雑になります。

    それらを明示的に設定するには、コントロールパネルの[システム]アイコン、[システムの詳細設定]タスク、[詳細設定]タブ、[環境]ボタンの下にある環境変数(ユーザーまたはシステム)を使用できます。

    InterfaceError: Unable to acquire Oracle environment handle 、これは特にOCI.dllを解決しない場合に発生し、cx_Oracleは使用するOCI.dllを認識しません。通常、これはPATH変数にOCI.dllを含む2つ以上の検索ディレクトリが含まれているためです。

    >

    特に、PATHにOCI.dllのインスタントが1つだけ含まれていることを確認すると、インスタントクライアントのインストールまたはOracle11GXEインストールのいずれかで問題が解決するはずです。

    Oracle 11G XEをインストールする前にインスタントクライアントをアンインストールしましたか?

    以下をコマンドプロンプトに貼り付けます。

    echo The current ORACLE_HOME is %ORACLE_HOME%

    echo The current TNS_ADMIN is %TNS_ADMIN%

    echo The current PATH is %PATH%

    これらの変数の現在の値を確認するには。

    その他のリソース



    1. MacにMySQLをインストールする

    2. スキーマとデータの両方のスクリプトを生成する

    3. MySQLでのMID()関数のしくみ

    4. 休日を除く2つの日付の間の平日数を取得する関数