Ich arbeite seit einigen Tagen mehr oder weniger freiwillig mit Oracle und bin fast verrückt geworden, als ich daran gescheitert bin, über sqlplus eine einfache Verbindung zu einer Datenbank herzustellen. Das übliche Vorgehen ist, dass man in der Datei %ORACLE_HOME%/network/admin/tnsnames.ora einen Alias für eine Verbindung anlegt und diese dann bei der Verbindungsherstellung angibt. Ein solcher Alias sieht wie folgt aus:
myAlias=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.jofre.de)(PORT=1234))(CONNECT_DATA=(SERVICE_NAME=mysrv)(SERVER=DEDICATED)))
Um nun über Command-Line und sqlplus eine Verbindung zu der Datenbank herzustellen, führt man folgenden Befehl aus:
sqlplus user/password@myAlias
Nun hatte ich immer das Problem, dass mir dabei die Fehlermeldung TNS-03505 Failed to resolve name angezeigt wurde. D.h. dass Oracle den Alias myAlias nicht auflösen konnte, da der Inhalt von tnsnames.ora scheinbar nicht bekannt war. Des Rätsels Lösung war nun die Umgebungsvariable TNS_ADMIN zu setzen, sodass diese auf tnsnames.ora zeigt.
set TNS_ADMIN=%ORACLE_HOME%/network/admin/tnsnames.ora
Natürlich muss ORACLE_HOME im Vorfeld ebenso gesetzt worden sein. Hoffe das hilft dem ein oder anderen.