it-swarm.com.de

So verwenden Sie sqlplus, 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 herstellen, die sich auf einem anderen Host befindet. Diese Seite 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 dann benutze das in sqlplus

sqlplus user/[email protected]_SID

Unter meinen Umständen ist es jedoch nicht möglich, die lokalen tnsnames zu ändern. Ist es möglich, eine Verbindung zu einer entfernten Datenbank herzustellen, indem nur das Argument sqlplus verwendet wird, ohne dass tnsnames geändert werden muss? Etwas wie

sqlplus user/[email protected][email protected] ;( I know, this one is not valid)
83
Louis Rhys
 sqlplus user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))

Möglicherweise, und dies hängt möglicherweise von der von Ihnen verwendeten Befehlszeilenumgebung ab, müssen Sie die Zeichenfolge in Anführungszeichen setzen

 sqlplus "user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"

oder

 sqlplus 'user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
88

Sie können easy connect dafür verwenden:

sqlplus usr/[email protected]/remote_service_name

Um eine einfache Verbindung auf Ihrem Computer zu aktivieren, müssen Sie sie dem NAMES.DIRECTORY_PATH In sqlnet.ora hinzufügen, z.

NAMES.DIRECTORY_PATH=(EZCONNECT)

Wenn sich Ihr Listener an einem nicht standardmäßigen Port befindet, verwenden Sie [email protected]:port/....

Eigentlich scheint es, dass Sie einen Dienstnamen angeben müssen, keine SID. Sie können identisch sein, aber wenn nicht, müssen Sie diese vom Server beziehen.

37
Alex Poole

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:

cp $Oracle_HOME/network/admin/tnsnames.ora /tmp/tnsnames.ora
# edit the /tmp/tnsnames.ora file to add your entries

# Set the $TNS_ADMIN environment variable so that sqlplus knows where to look 
export TNS_ADMIN=/tmp
18
Philᵀᴹ

Unter Unix/Linux-Systemen können Sie Konfigurationsdateien auf Benutzerebene verwenden, um Einträge auf Systemebene zu überschreiben.

 Systemebene Benutzerebene 
 Konfigurationsdatei Konfigurationsdatei 
 ------------------ ------- ------------ 
 sqlnet.ora $ HOME/.sqlnet.ora 
 tnsnames.ora $ HOME/.tnsnames.ora 

Die Konfigurationsdateien auf Systemebene befinden sich im Verzeichnis $TNS_ADMIN. Wenn die Variable TNS_ADMIN Nicht gesetzt ist, werden sie im Verzeichnis $Oracle_HOME/network/admin Gesucht.

Die Konfigurationsdateien auf Benutzerebene ersetzen nicht die Konfigurationsdateien auf Systemebene als Ganzes (da das Verzeichnis TNS_ADMIN Das gesamte Verzeichnis $Oracle_HOME/network/admin Ersetzt), sondern fügen Einträge des Systems hinzu oder ändern sie. Konfigurationsdateien auf Ebene. 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 in der Konfigurationsdatei auf Systemebene verwendet.

3
miracle173