Oracleによると、これらの場所でtnsnames.oraが検索されます。 、それぞれsqlnet.ora :
- 現在のパス(実行中のクライアントアプリケーションに関連付けられている)
- 環境変数
TNS_ADMINセッション用に定義 - 環境変数
TNS_ADMINシステム用に定義 - Windowsレジストリキー
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN(64ビットの場合)またはHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN(32ビットの場合) -
%ORACLE_HOME%\network\admin
ただし、各アプリケーション/ドライバー/バージョンがこのリストに従っているかどうかはわかりません。このリストは、バージョン9iに関連してOracleによって提供されました。VBScriptによってこれらのフォルダをクエリするように管理できると思います。
ORACLE_HOMEの場合 環境変数によって設定されていない場合は、レジストリHKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOMEにクエリを実行する必要があります。 (64ビットの場合)またはHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME (32ビットの場合)
ORACLE_HOME_NAMEの場合 Oracleのbinに移動する必要があります フォルダ(%PATH%で見つかります 環境変数)およびファイルoracle.keyを開きます 。これは、ORACLE_HOME_NAMEのみを含む単純なテキストファイルです。 値、例: OraClient11g_home1 。
ただし、通常、HKLM\SOFTWARE\ORACLEの下にはOracleホームが1つしかありません。 、ファイルoracle.keyを探して読み取る やり過ぎかもしれません。
更新
自分のマシンで(Oracle Client 11.2を使用して)テストを実行すると、次の順序になります。
- 環境変数
TNS_ADMIN -
HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN、それぞれHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN->TNS_ADMINの場合のみ 環境変数が設定されていません。 -
%ORACLE_HOME%\network\admin - 現在のディレクトリ(アプリケーションが配置されているディレクトリとは異なる場合があります)
- アプリケーションが配置されているフォルダ
詳細な分析を行うには、tnsnames.oraを検索する必要があります。 、sqlnet.ora およびldap.ora 。 Oracleデータベース名は、それぞれを介して解決できます。つまり、tnsnames.oraの場合でも接続が確立される可能性があります。 およびsqlnet.ora 存在しません。