Ik wil verbinding maken met een oracle database op een andere host met sqlplus. Deze pagina stelde voor om een item toe te voegen aan mijn tnsnames om verbinding te maken met die database
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
en dat dan te gebruiken in sqlplus
sqlplus user/pass@local_SID
Echter, in mijn omstandigheden is het wijzigen van de lokale tnsnames niet mogelijk. Is het mogelijk om verbinding te maken met een database op afstand door alleen het sqlplus argument te gebruiken zonder de tnsnames te hoeven wijzigen? Zoiets als
sqlplus user/pass@[email protected] ;( I know, this one is not valid)
sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))
Misschien, en dit kan afhangen van de commandoregelomgeving die je gebruikt, moet je de string citeren, zoiets als
sqlplus "user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"
of
sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
U kunt hiervoor easy connect gebruiken:
sqlplus usr/[email protected]/remote_service_name
Om easy connect op uw machine in te schakelen, moet u het toevoegen aan de NAMES.DIRECTORY_PATH
in sqlnet.ora, bijv:
NAMES.DIRECTORY_PATH=(EZCONNECT)
Als uw listener op een andere dan de standaard poort staat, gebruik dan [email protected]:port/...
.
Het lijkt erop dat je een service naam moet opgeven, niet een SID; misschien zijn ze hetzelfde, maar als dat niet zo is moet je die van de server krijgen.
Maak een kopie van het tnsnames.ora bestand in een directory waarnaar je kan schrijven, pas het bestand dienovereenkomstig aan, en stel dan de TNS_ADMIN omgevingsvariabele in op de locatie van die directory.
Bv:
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