Wie kann ich sqlplus verwenden, um eine Verbindung zu einer Oracle-Datenbank auf einem anderen Host herzustellen, ohne meine eigene tnsnames.ora zu ändern?
Ich möchte mit sqlplus eine Verbindung zu einer Oracle-Datenbank auf einem anderen Host herstellen. [Diese Seite] (http://thomas.eibner.dk/oracle/sqlplus/) schlug vor, ein Element zu meinen tnsnames hinzuzufügen, um eine Verbindung zu dieser Datenbank herzustellen
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
und diesen dann in Sqlplus zu verwenden
sqlplus user/pass@local_SID
In meinem Fall ist es jedoch nicht möglich, die lokalen tnsnames zu ändern. Ist es möglich, eine Verbindung zu einer entfernten Datenbank herzustellen, indem man einfach das Argument sqlplus verwendet, ohne tnsnames ändern zu müssen? Etwa so
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
81
3
Vielleicht, und das könnte von der Kommandozeilenumgebung abhängen, die Sie verwenden, müssen Sie den String in Anführungszeichen setzen, etwa so
oder
Sie können dafür [easy connect] (https://docs.oracle.com/cd/E11882_01/network.112/e41945/naming.htm#NETAG255) verwenden:
Um easy connect auf Ihrem Rechner zu aktivieren, müssen Sie es zum
NAMES.DIRECTORY_PATH
in sqlnet.ora hinzufügen, z.B.:Wenn Ihr Listener an einem Nicht-Standard-Port liegt, verwenden Sie
...@hostname.network:port/...
.Es scheint, dass Sie einen Dienstnamen angeben müssen, nicht eine SID; sie können gleich sein, aber wenn nicht, müssen Sie das vom Server erhalten.
Erstellen Sie eine Kopie der Datei tnsnames.ora in einem Verzeichnis, in das Sie schreiben können, ändern Sie die Datei entsprechend und setzen Sie dann die Umgebungsvariable TNS_ADMIN auf den Speicherort dieses Verzeichnisses.
z.B.: