[Oracle初心者運用メモ]VB.NETからOLEDB接続で予期せぬエラー

久々にOracle関連の記事を書いてます。

VB.NETでOracle10gに接続しているシステムを使用されている客先より、
パソコンのパーティションを分けたら、システムで予期せぬエラーが
出るようになったという連絡があり調査することに。。

VB.NETからの接続は、ADO.NETを使用してOledb接続をしているのですが
接続ではエラーになっておらず、SELECTコマンドを実行したことろで
下記のエラーが出ていました。

0x8000FFFF(E_UNEXPECTED)

パーティションを分けたということでしたので、
(OracleはCドライブに入っている)
PATHの設定などがおかしくなっているのかと思い、
環境変数のPATHを確認したり、ORACLE_HOMEを設定してみたりしましたが
解決せず。。

ネットで同様の事例がないかを調べてみたところ、
同様の現象の質問をされている方に対して、アクセク権の問題ではないか。との
回答でいろいろ試行錯誤されており、、
その方は最終的に今までCドライブにOracleをインストールしていたのを
Dドライブにインストールしてみたら回避できたとありました。

そこで、私も、客先パソコンは、CドライブとFドライブに分けていらっしゃたので
FドライブにOracle11gをインストール。
でも、それだけでは、現象は回避されず

接続のプロバイダを下記の「MSDAORA」から
Provider=MSDAORA
「OraOLEDB.Oracle」に変更し
Provider=OraOLEDB.Oracle

正常に動作するようになりました。

結局、原因はわからないままですが
この対応で使っていただくことになりました。