2012-10-15 505 views
21

XPからWin 7に移行しました。このエラーは、オペレーティングシステムの切り替えに関係していると思います。基本的に大量のデータをマッサージしてデータベースに接続し、テーブルを挿入/更新する.NETアプリケーションを作成しました。OraOLEDB.Oracleプロバイダがローカルマシンに登録されていません

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

これを迅速に修正できる方法の概略を段階的に確認すると、非常に高く評価されます。

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

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

+0

具体的なエラーは何ですか? – Annjawn

+0

あなたはこの問題を解決しましたか? – Handsome

答えて

3
  1. 右のプロパティの[マイコンピュータ
  2. クリックをクリックします
  3. アドバンストシステム設定をクリック
  4. 「環境変数」をクリックして、ボタンを押します。
  5. システムでは可変部(ローカルマシンから)「PATH」の編集
  6. 変数「PATH」変数とそれへのOracleのインストールパスを追加するには;C:\oracle\product\10.2.0\client_1\bin
+0

その後に再起動が必要な場合があります。 –

32

のように、私は後に同じ問題があった見つけます64ビットOracleクライアントをWindows 7 64ビットにインストールする。私のために働いたソリューション:

コマンドプロンプトを開きとタイプ:

  1. 開き、管理者モードでコマンドプロンプト
  2. cd \oracle\product\11.2.0\client_64\BIN
  3. c:\Windows\system32\regsvr32.exe OraOLEDB11.dll
+0

複数の異なるバージョンのOracle製品が複数ある場合は、その例外の原因となっているOracleクライアントに応じて、他のバージョンのregsrv32.exeも使用する必要があります。 – stephen

+9

このポストを見つけたが、Windows 7の64ビットマシンに32ビットのOracleクライアントを持っている人は、C:\ Windows \ SysWOW64 \ Regsvr32.exeというパスを使用してください(もちろん、適切なOracleの32ビットBINディレクトリ) – jimo3

+0

cdは何を表しますか?それはシステムが指定されたパスを見つけることができない私を投げる。 – Handsome

5

次のテストを実行します。 tnspingインスタンス名

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

「OK」に戻ったら、Der Wolfの回答の手順に従います。 OKに戻らない場合は、Annjawnの回答の手順に従ってください。

どちらも私のために解決しました。

+0

tnspingはOLE DBプロバイダに関連していません –

0

Der Wolfs tipをビルドして、Oracleクライアントをアンインストールしてもう一度インストールし、セットアッププログラムを右クリックし、として実行しました。出来た。

2

は、Windows 64ビットを持っている場合は、Oracleドライバ32ビット最初に64ビットドライバをインストールしようと、私は 'から「プラットフォームターゲット」を変更した後、それは私だけのために働いていた私は何をして

+0

私の場合は、プロジェクトを 'Any CPU'から' x64'に切り替えた後、正常に動作しています。 –

0

を働いているのthats x64' の

はそれを行うには(私は、Oracle 12cの64ビットを使用しています考慮して)、私がやった:

  1. は右で、一般的に、見つけソリューションエクスプローラパネルで、(プロジェクト名をクリックしてください左)

  2. は、 'x64のか' の問題を解決し

に 'どれCPU' から 'プラットフォームターゲット' を変更(新しい開いたウィンドウで) 'ビルド'

  • をクリックしました。

  • 3

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

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

    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ビットに切り替える(またはその逆にする)ことをお勧めします。 follow this guideを使用すると、アプリケーションを64または32ビット(それぞれX64およびX86)として実行することができます。プロジェクトプロパティのPlatform TargetAny CPUに設定されておらず、明示的に設定されていることを確認する必要があります。 Any CPUからX86にそのオプションを切り替え

    enter image description here

    は私のエラーを解決し、私は、Oracleプロバイダに接続することができました。

    +0

    'IntPtr.Size'の代わりに' Environment.Is64BitProcess'を使うこともできます –

    0

    修正するために時間を費やした後。正しくインストールされていない人は、現在のバージョンをアンインストールしてから、再度インストールする必要があります。enter image description here

    +0

    完全な "Administrator"クライアントは必要ありません。コンポーネント「Oracle Provider for OLE DB」を有効にする必要がある場合は、「カスタム」を使用することもできます。 –

    0

    私のチームは毎回この問題を抱えています。 12.2.0.4のver Oracleドライバ12cとを使用したが、実験のかなりが、我々は間違っていたものを実現した後、私たちは、他のバージョン)

    と、このバグに出くわした:

    は、マシンがマシンを使用していたアプリがあると述べましたオラクル・ドライバー・インストーラーがアップグレード/レインを試みるときにその魔法を働かせないようにします。背の高いオラクルの運転手が言った。これらのアプリは本質的に再起動時に自動的に起動するので、sneakiest "app"はIISなどで動作するウェブサイトです。これに対処するには、次の操作を行います。

    1. 再起動時にIISが自動的に起動しないようにします。再起動時に自動的に起動する他のアプリケーションやサービスに対しても同様の操作を行います。
    2. 以前のOracleドライバをアンインストールし、レジストリまたはフォルダにトレースが残っていないことを再度確認します。
    3. マシンを再起動してください
    4. (再)Oracleドライバをインストールし、IISなどの自動起動アプリケーションを再度有効にしてください。
    5. マシンを再起動してください< - これは非常に重要です。 OracleのOLE DBドライバは、マシンを再起動しない限り動作しません。

    これが機能しない場合は、OLE DBドライバが動作するまでリンスを繰り返します。これが、何が起こっているのか把握するのに苦労している人を助けてくれることを願っています。

    関連する問題