Ako sa pomocou sqlplus pripojiť k databáze Oracle umiestnenej na inom hostiteľovi bez úpravy vlastného súboru tnsnames.ora

Chcem sa pripojiť k databáze Oracle umiestnenej na inom hostiteľovi pomocou sqlplus. Táto stránka mi navrhla pridať položku na tnsnames na pripojenie k tejto databáze.

local_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
    (CONNECT_DATA = (SID = remote_SID))
  )

a potom ju použiť v sqlplus

sqlplus user/pass@local_SID

V mojich podmienkach však úprava miestnych tnsnames nie je možná. Je možné pripojiť sa k vzdialenej databáze len pomocou argumentu sqlplus bez toho, aby bolo potrebné meniť tnsnames? Niečo ako

sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
Riešenie
 sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))

Možno, a to môže závisieť od prostredia príkazového riadku, ktorý používate, musíte reťazec uviesť v úvodzovkách, niečo ako

 sqlplus "user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"

alebo

 sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
Komentáre (0)

Môžete na to použiť easy connect:

sqlplus usr/pass@hostname.network/remote_service_name

Ak chcete na svojom počítači povoliť easy connect, musíte ho pridať do NAMES.DIRECTORY_PATH v sqlnet.ore, napr:

NAMES.DIRECTORY_PATH=(EZCONNECT)

Ak je váš poslucháč na inom ako predvolenom porte, použite ...@hostname.network:port/....

V skutočnosti sa zdá, že musíte zadať názov služby, nie SID; môžu byť rovnaké, ale ak nie, budete ho musieť získať od servera.

Komentáre (3)

Vytvorte kópiu súboru tnsnames.ora v adresári, do ktorého môžete zapisovať, súbor príslušne upravte a potom nastavte premennú prostredia TNS_ADMIN na umiestnenie tohto adresára.

Napr:

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
Komentáre (2)