web-dev-qa-db-ja.com

OraOLEDB.Oracleプロバイダーがローカルマシンに登録されていません

私はちょうどXPからWin 7に移行しました。このエラーはオペレーティングシステムの切り替えに関係していると推測しています。データベースと挿入/更新テーブル。

データベースに接続するためのボタンを押すと、ローカルマシンに登録されていないOracleプロバイダーに関するエラーが発生します。

これを迅速に修正する方法の明確なステップバイステップの概要は大歓迎です。

正確なエラーメッセージは次のとおりです。

「OraOLEDB.Oracle.1」プロバイダーがローカルマシンに登録されていません

31
Jared

64ビットOracleクライアントをWindows 7 64ビットにインストールした後、同じ問題が発生しました。私のために働いた解決策:

  1. 管理者モードでコマンドプロンプトを開く
  2. cd \Oracle\product\11.2.0\client_64\BIN
  3. c:\Windows\system32\regsvr32.exe OraOLEDB11.dll
45
Der Wolf

IISを使用しても同じ問題が発生しました。

アプリケーションプールの詳細設定で、オプション「32ビットアプリケーションを有効にする」がtrueに設定されていることを確認します。

6
Vagner Gon

次のテストを実行します。

コマンドプロンプトを開き、次のように入力します:tnsping instance_name

instance_nameは、接続するインスタンスの名前です(XEデータベースの場合は、「tnsping xe」を使用します)

OKが返された場合は、Der Wolfの答えの手順に従ってください。 OKが返されない場合は、Annjawnの回答の手順に従ってください。

両方のケースで解決しました。

5
julison
  1. [マイコンピュータ]を右クリックします
  2. プロパティをクリックします
  3. [システムの詳細設定]をクリックします
  4. 「環境変数」ボタンをクリックします。
  5. システム変数セクションで「PATH」変数を見つけます
  6. 「PATH」変数を編集し、;C:\Oracle\product\10.2.0\client_1\bin
4
Annjawn

それを修正するのに何時間も費やした後;誤ってインストールした人のために、現在のバージョンをアンインストールし、管理者として再インストールする必要があります enter image description here

2

Windows 64ビットを使用している場合、Oracleドライバーを最初に32ビット、次に64ビットのドライバーをインストールしてみてください。

'Platform target'を 'x64'に変更した後にのみ機能しました(Oracle 12c 64ビットを使用していると考えてください)

それをするために、私はやった:

  1. プロジェクト名を右クリックします(一般的に、ソリューションエクスプローラーパネルの左側にあります)。

  2. 「ビルド」をクリックしました(新しく開いたウィンドウで)

  3. 「プラットフォームターゲット」を「任意のCPU」から「x64」に変更しました

これで問題は解決しました。

1
Daniel Bonetti

これをC#プロジェクトで取得している場合は、次のコードを使用して64ビットモードで実行しているか、32ビットモードで実行しているかを確認してください。

        if (IntPtr.Size == 4)
        {
            Console.WriteLine("This is 32-Bit!");
        }
        else if (IntPtr.Size == 8)
        {
            Console.WriteLine("This is 64 Bit!");
        }

64ビットモードで実行していることがわかった場合は、32ビットに切り替えてみてください(またはその逆)。 このガイドに従って を実行すると、アプリケーションを強制的に64ビットまたは32ビット(それぞれX64およびX86)として実行できます。プロジェクトプロパティのPlatform TargetAny CPUに設定されておらず、明示的に設定されていることを確認する必要があります。

enter image description here

そのオプションをAny CPUからX86に切り替えるとエラーが解決し、Oracleプロバイダーに接続できました。

1
John August

私のチームは時々この問題に出くわし、プラットフォームをインストールしようとするランダムなマシンで偶然に遭遇しました(Oracleドライバー12c ver 12.2.0.4を使用していますが、他のバージョンでもこのバグに遭遇しました)

かなりの実験の後、私たちは何が間違っていたかに気付きました。

このマシンには、マシン全体のOracleドライバーをサイレントにロックし、Oracleドライバーをアップグレード/再インストールしようとするとOracleドライバーインストーラーがその魔法を働かせないようにするアプリがあります。最も卑劣な「アプリ」は、IISなどで実行されているWebサイトです。これらのアプリは本質的に再起動時に自動起動します。これに対処するには、次の手順を実行します。

  1. IIS再起動時の自動起動を無効にします。再起動時に自動起動する他のアプリ/サービスについても同様に行います。
  2. 以前のOracleドライバーをすべてアンインストールし、レジストリまたはフォルダーに痕跡が残っていないことを再確認します。
  3. マシンを再起動します
  4. (再)Oracleドライバーをインストールし、IISおよびその他の自動起動アプリを再度有効にします。
  5. マシンを再起動する<-これは重要です。 OracleのOLE DBドライバーは、マシンを再起動しない限り機能しません。

これが動作しない場合は、OLE DBドライバーが動作するまで繰り返しすすいでください。

0
XDS

Der Wolfsのヒントに基づいて、Oracleクライアントをアンインストールしてから再インストールし、セットアッププログラムを右クリックして、管理者として実行を作成しました。動いた。

0
Nuno G

私は同じ問題を抱えていましたが、私の解決策は、プラットフォームターゲットを任意のCPUとして保持し、32ビットのチェックを優先しないチェックを外すことでした。チェックを外した後、プロバイダーとの接続を開くことができました。

Turn Prefer 32-bit off

0
Kris Westermann