Ich möchte mit sqlplus eine Verbindung zu einer Oracle-Datenbank auf einem anderen Host herstellen. Auf dieser Seite wurde vorgeschlagen, ein Element in meine tnsnames aufzunehmen, um eine Verbindung zu dieser Datenbank herzustellen
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
und benutze das dann in sqlplus
sqlplus user/pass@local_SID
Unter meinen Umständen ist es jedoch nicht möglich, die lokalen tnsnames zu ändern. Ist es möglich, mit sqlplus eine Verbindung zu einer entfernten Datenbank herzustellen, ohne tnsnames ändern zu müssen? So etwas wie
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
database
es immer noch einen TNS-Alias, der in der existieren musstnsnames.ora
, also ist es das gleiche, was Louis zu vermeiden versucht hat?Antworten:
Möglicherweise, und dies hängt möglicherweise von der Befehlszeilenumgebung ab, die Sie verwenden, müssen Sie die Zeichenfolge in Anführungszeichen setzen
oder
quelle
Sie können hierfür easy connect verwenden :
Um eine einfache Verbindung auf Ihrem Computer zu ermöglichen, müssen Sie diese
NAMES.DIRECTORY_PATH
in sqlnet.ora hinzufügen, z.Wenn sich Ihr Listener auf einem nicht standardmäßigen Port befindet, verwenden Sie
[email protected]:port/...
.Eigentlich müssen Sie einen Dienstnamen angeben, keine SID. Sie können gleich sein, aber wenn nicht, müssen Sie dies vom Server anfordern.
quelle
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 die Umgebungsvariable TNS_ADMIN auf den Speicherort dieses Verzeichnisses.
z.B:
quelle
Unter Unix / Linux können Sie die Konfigurationsdateien auf Benutzerebene verwenden , um Einträge auf Systemebene zu überschreiben.
Die Konfigurationsdateien auf Systemebene befinden sich im Verzeichnis
$TNS_ADMIN
. Wenn die VariableTNS_ADMIN
nicht gesetzt ist, werden sie im Verzeichnis gesucht$ORACLE_HOME/network/admin
.Die Konfigurationsdateien auf Benutzerebene
TNS_ADMIN
ersetzen nicht die gesamten Konfigurationsdateien auf Systemebene (da das Verzeichnis das gesamte$ORACLE_HOME/network/admin
Verzeichnis ersetzt), sondern ergänzen oder ändern Einträge der Konfigurationsdateien auf Systemebene. Wenn ein Eintrag in einer Konfigurationsdatei auf Benutzerebene vorhanden ist, wird dieser verwendet. Wenn er in der Konfigurationsdatei auf Benutzerebene nicht vorhanden ist, wird der Eintrag der Konfigurationsdatei auf Systemebene verwendet.quelle