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

XPからWin7に移行したばかりです。このエラーはOSの切り替えと関係があるのではないかと思います。私が書いた.netアプリケーションは、基本的に大量のデータを処理し、データベースに接続してテーブルを挿入/更新します。

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

どのようにしてこの問題を迅速に解決することができるのか、明確なステップバイステップのアウトラインを教えていただければ幸いです。

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

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

質問へのコメント (2)

Windows 7 64ビット版に64ビット版のOracleクライアントをインストールしたところ、同じ問題が発生しました。 私に効いた解決策は

1.コマンドプロンプトを管理者モードで開きます。 2. 「cd ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶11.2.0\client_64\BIN」と入力します。 3. c:‾Windows‾system32‾regsvr32.exe OraOLEDB11.dll を実行してください。

解説 (7)

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

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

解説 (1)

以下のテストを行ってください。

コマンドプロンプトを開き、次のように入力します。 tnsping インスタンス名

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

OKが出たら、Der Wolf'さんの回答の手順に従ってください。もしOKが出なければ、Annjawn'さんの回答の手順に従ってください。

私はどちらの場合も解決しました。

解説 (1)

1.マイコンピュータ」を右クリック 2.プロパティをクリック 3.システムの詳細設定をクリック 4.環境変数」をクリックします。 5.5. システム変数のセクションで、"PATH"変数を見つける。 5.5. 変数 "PATH" を編集し、Oracle のインストールパスを追加します(ローカルマシンから)。

解説 (1)

Windows 64ビットがある場合は、最初にoracleドライバー32ビット、次に64ビットドライバーをインストールしてみてください。

解説 (1)

それを修正するために何時間も費やした後;正しくインストールしていないユーザーは、現在のバージョンをアンインストールして、管理者として再度インストールする必要があります。![ここに画像の説明を入力してください](https://i.stack.imgur.com/WfHi5.gif。)

解説 (1)

同じ問題がありましたが、私の解決策は、プラットフォームの目標をAny CPUおよびUNCHECK Prefer 32ビットチェックボックスとして維持することでした。 チェックを外した後、プロバイダーとの接続を開くことができました。

。![優先32ビットオフ](https://i.stack.imgur.com/mJ8En.png。)を回します。

解説 (0)

「プラットフォームターゲット」を「x64」に変更した後でのみ機能しました(Oracle 12c 64ビットを使用していることを考慮)。

そのために、私はしました:

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

2。 (新しく開いたウィンドウで)[ビルド]をクリックします。

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

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

解説 (0)

これを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)として実行するように強制できます。 プロジェクトプロパティの「プラットフォームターゲット」が「任意のCPU」に設定されていないこと、および明示的な設定であることを確認する必要があります。

。![ここに画像の説明を入力してください](http://i.stack.imgur.com/spNZF.jpg。)

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

解説 (1)

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

かなりの実験の後、私たちは何が悪いのかを理解しました:

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

1。 再起動時にIISを自動的に起動できないようにします。 再起動時に自動起動する他のアプリ/サービスについても同じようにします。 2。 以前のOracleドライバーをアンインストールし、レジストリまたはフォルダーに痕跡が残っていないことを再確認します。 2。 マシンを再起動します。 3。 (再)Oracleドライバーをインストールし、IISおよびその他の自動起動アプリを再度有効にします。 4。 マシンを再起動

解説 (0)

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

解説 (0)