質問: クライアント側の環境、 Windows7,Excel2003~2010のVBA Oracle10gもしくは11gもしくはInstantClient ExcelのVBAからADO2.8のMicrosoft ODBC for OracleでOracleに接続しており、 Oracleサーバーが複数あります。 ユーザー環境のtnsnames.oraに接続文字列が無い場合、 VBAでエラーになるのでそれをキャッチして、 tnsnames.oraに接続文字列を書き加えようとしているのですが、 tnsnames.oraの場所がクライアントごとに違っていて、 取得方法に困っています。 環境変数'TNS_ADMIN'があればそれを取得するのですが、 無いクライアントもありました。 Cドライブをすべて検索していけば見つかるとは思うのですが、 それだと時間がかかってしまうし、 tnsnames.oraが複数あった場合、 Oracleが参照していないファイルを見つけることもあります。 なにか良い手は無いでしょうか? よろしくおねがいします。
回答: `TNS_ADMIN`が設定されていない場合は、`$ORACLE_HOME/network/admin`を参照するようです。 参考: