Chci se připojit k databázi Oracle umístěné na jiném hostiteli pomocí sqlplus. Tato stránka navrhl přidat položku do mých jmen tnsnam, aby se připojil k této databázi
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
a pak to použijte v sqlplus
sqlplus user/[email protected]_SID
Za mých okolností však není možné změnit místní jména. Je možné připojit se ke vzdálené databázi pouze pomocí argumentu sqlplus, aniž byste museli měnit názvy jmen? Něco jako
sqlplus user/[email protected][email protected] ;( I know, this one is not valid)
sqlplus user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))
Možná, a to může záviset na prostředí příkazového řádku, které používáte, je třeba uvést řetězec, například
sqlplus "user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"
nebo
sqlplus 'user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
K tomu můžete použít easy connect :
sqlplus usr/[email protected]/remote_service_name
Chcete-li na počítači povolit snadné připojení , musíte jej přidat do NAMES.DIRECTORY_PATH
v sqlnet.ora, např .:
NAMES.DIRECTORY_PATH=(EZCONNECT)
Pokud je váš posluchač na jiném než výchozím portu, použijte [email protected]:port/...
.
Ve skutečnosti se zdá, že musíte zadat název služby, nikoli SID; mohou být stejné, ale pokud ne, budete je muset získat ze serveru.
Vytvořte kopii souboru tnsnames.ora v adresáři, do kterého můžete zapsat, podle toho upravte soubor a poté nastavte proměnnou prostředí TNS_ADMIN do umístění tohoto adresáře.
např:
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
V systému Unix/Linux můžete k přepsání položek na systémové úrovni použít konfigurační soubory na úrovni uživatele .
Uživatelská úroveň na úrovni systému Konfigurační soubor konfiguračního souboru ------------------ ------- ------------ sqlnet.ora $ HOME/.sqlnet.ora tnsnames.ora $ HOME/.tnsnames.ora
Konfigurační soubory na úrovni systému lze nalézt v adresáři $TNS_ADMIN
. Pokud proměnná TNS_ADMIN
není nastaveno, pak jsou prohledávány v adresáři $Oracle_HOME/network/admin
.
Konfigurační soubory na úrovni uživatele nenahrazují konfigurační soubory na systémové úrovni jako celek (jako TNS_ADMIN
adresář nahradit celý $Oracle_HOME/network/admin
adresář), ale přidávají nebo mění položky konfiguračních souborů na systémové úrovni. Pokud položka existuje v konfiguračním souboru na úrovni uživatele, použije se tento, pokud neexistuje v konfiguračním souboru na úrovni uživatele, použije se položka konfiguračního souboru na úrovni systému.