久々に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
正常に動作するようになりました。
結局、原因はわからないままですが
この対応で使っていただくことになりました。