Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Identifizieren der Position der relevanten tnsnames und Echos an die Konsole

Laut Oracle werden diese Orte nach tnsnames.ora durchsucht , bzw. sqlnet.ora :

  1. aktueller Pfad (der laufenden Client-Anwendung zugeordnet)
  2. Umgebungsvariable TNS_ADMIN für die Sitzung definiert
  3. Umgebungsvariable TNS_ADMIN für das System definiert
  4. Windows-Registrierungsschlüssel HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN (für 64 Bit) oder HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN (für 32 Bit)
  5. %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:

  1. Umgebungsvariable TNS_ADMIN
  2. HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN , bzw. HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN -> Nur wenn TNS_ADMIN Umgebungsvariable ist nicht gesetzt.
  3. %ORACLE_HOME%\network\admin
  4. Aktuelles Verzeichnis (das sich von dem Verzeichnis unterscheiden kann, in dem sich Ihre Anwendung befindet)
  5. 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.