Ermittelt den Speicherort der Datei tnsnames.ora anhand des Codes

7

Wie kann ich den Speicherort der Datei tnsnames.ora nach Code in einer Maschine mit installiertem Oracle-Client ermitteln?

Gibt es einen Windows-Registrierungsschlüssel, der den Speicherort dieser Datei angibt?

    
RRUZ 05.01.2010, 13:19
quelle

5 Antworten

10

Vor einigen Jahren hatte ich das gleiche Problem.
Damals musste ich Oracle 9 und 10 unterstützen, also kümmert sich der Code nur um diese Versionen, aber vielleicht erspart es Ihnen etwas Recherche. Die Idee ist:

  • Durchsuchen Sie die Registrierung, um die Oracle-Client-Version
  • zu ermitteln
  • versuche das ORACLE_HOME
  • zu finden
  • bekomme endlich die tnsnames von HOME
%Vor%     
Thomas Zoechling 05.01.2010, 13:54
quelle
7

Unter Windows sind die wahrscheinlichsten Speicherorte entweder %ORACLE_HOME%/network/admin oder %TNS_ADMIN% (oder die Registrierungseinstellung TNS_ADMIN). Diese beiden decken fast jede Installation ab.

Natürlich ist es möglich, einen funktionierenden Oracle-Client ohne diese Datei zu haben. Oracle hat verwirrende Netzwerkoptionen, und es gibt viele Möglichkeiten, ein funktionierendes Setup mit TNSNAMES zu erreichen. Je nachdem, was Sie hier erreichen möchten, ist Ihr erster Aufruf die Datei sqlnet.ora , die auch in %ORACLE_HOME%/network/admin gefunden wird. Dies sollte eine Zeile enthalten, die ungefähr so ​​aussieht:

%Vor%

TNSNAMES bedeutet, dass die Datei TNSNAMES.ora verwendet wird (in diesem Fall die zweite). LDAP und HOSTNAME sind alternative Möglichkeiten zum Auflösen der Datenbank. Wenn keine TNSNAMES vorhanden ist, wird die TNSNAMES.ora -Datei ignoriert, wenn sie an der richtigen Stelle existiert.

In C # / .NET sollten Sie die Umgebungsvariablen erhalten:

Environment.GetEnvironmentVariable("ORACLE_HOME");

Environment.GetEnvironmentVariable("TNS_ADMIN");

    
Colin Pickard 05.01.2010 13:34
quelle
2
%Vor%     
GxG 05.01.2010 13:38
quelle
0

Laut dem Netz hängt das von der Oracle-Version und dem Arbeitsverzeichnis des SQL * Plus-Prozesses ab. Dieser erste Link teilt Ihnen die Umgebungsvariable mit, die die Basis angibt Pfad für einige Versionen (7, 8, 9i) von Oracle. Wenn Sie einen anderen verwenden, bin ich sicher, dass es eine ähnliche Möglichkeit gibt, zum Systemverzeichnis zu gelangen.

Wenn Sie jedoch Versionen dieser Dateien überall verbreiten und sich auf das "Suchen nach einem lokalen tnsnames.ora ersten" Verhalten des Clients verlassen, dann haben Sie vermutlich kein Glück.

    
Benjamin Podszun 05.01.2010 13:33
quelle
0

Ich bin kein C # - oder Windows-Typ, hoffentlich hilft das. Die Datei tnsnames.ora sollte sich in folgendem Verzeichnis befinden:

%Vor%

Wenn ein alternativer Speicherort angegeben wurde, sollte er über den Registrierungsschlüssel TNS_ADMIN verfügbar sein.

Siehe link für weitere Informationen darüber, wie Oracle tns-Namen unter Windows behandelt. p>     

RC. 05.01.2010 13:36
quelle

Tags und Links