Laut Oracle werden diese Orte nach tnsnames.ora
durchsucht , bzw. sqlnet.ora
:
- aktueller Pfad (der laufenden Client-Anwendung zugeordnet)
- Umgebungsvariable
TNS_ADMIN
für die Sitzung definiert - Umgebungsvariable
TNS_ADMIN
für das System definiert - Windows-Registrierungsschlüssel
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(für 64 Bit) oderHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(für 32 Bit) %ORACLE_HOME%\network\admin
Ich bin mir jedoch nicht sicher, ob jede Anwendung/Treiber/Version dieser Liste folgt. Diese Liste wurde von Oracle in Bezug auf Version 9i bereitgestellt. Ich denke, Sie werden es schaffen, diese Ordner per VBScript abzufragen.
Wenn ORACLE_HOME
nicht durch die Umgebungsvariable gesetzt wird, müssen Sie die Registrierung HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
abfragen (für 64 Bit) oder HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
(für 32 Bit)
Für ORACLE_HOME_NAME
Sie müssen zu Ihrem Oracle bin
navigieren Ordner (zu finden über %PATH%
Umgebungsvariable) und öffnen Sie die Datei oracle.key
. Dies ist eine einfache Textdatei, die nur den ORACLE_HOME_NAME
enthält Wert, z. OraClient11g_home1 .
Normalerweise gibt es jedoch nur ein Oracle Home unterhalb von HKLM\SOFTWARE\ORACLE
, also Suchen und Lesen der Datei oracle.key
könnte ein Overkill sein.
Aktualisieren
Wenn ich einen Test auf meinem Rechner (mit Oracle Client 11.2) durchführe, erhalte ich folgende Reihenfolge:
- Umgebungsvariable
TNS_ADMIN
HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
, bzw.HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-> Nur wennTNS_ADMIN
Umgebungsvariable ist nicht gesetzt.%ORACLE_HOME%\network\admin
- Aktuelles Verzeichnis (das sich von dem Verzeichnis unterscheiden kann, in dem sich Ihre Anwendung befindet)
- Ordner, in dem sich Ihre Anwendung befindet
Für eine tiefgehende Analyse müssen Sie nach tnsnames.ora
suchen , sqlnet.ora
und ldap.ora
. Über jeden kann der Oracle-Datenbankname aufgelöst werden, d.h. es kann auch bei tnsnames.ora
eine Verbindung aufgebaut werden und sqlnet.ora
existieren nicht.