Je veux me connecter à une base de données oracle située sur un autre hôte en utilisant sqlplus. [Cette page] (http://thomas.eibner.dk/oracle/sqlplus/) m'a suggéré d'ajouter un élément à mon nom de domaine pour me connecter à cette base de données.
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
et de l'utiliser ensuite dans sqlplus
sqlplus user/pass@local_SID
Cependant, dans mon cas, il n'est pas possible de modifier les tnsnames locaux. Est-il possible de se connecter à une base de données distante en utilisant simplement l'argument sqlplus sans avoir à modifier les noms de domaine ? Quelque chose comme
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)))
Peut-être, et cela peut dépendre de l'environnement de ligne de commande que vous utilisez, vous devez citer la chaîne, quelque chose comme
sqlplus "user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"
ou
sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
Vous pouvez utiliser [easy connect] (https://docs.oracle.com/cd/E11882_01/network.112/e41945/naming.htm#NETAG255) pour cela :
sqlplus usr/[email protected]/remote_service_name
Pour activer easy connect sur votre machine, vous devez l'ajouter au NAMES.DIRECTORY_PATH
dans sqlnet.ora, par exemple :
NAMES.DIRECTORY_PATH=(EZCONNECT)
Si votre listener est sur un port autre que celui par défaut, utilisez [email protected]:port/...
.
En fait, il semble que vous deviez fournir un nom de service, et non un SID ; il se peut qu'ils soient identiques, mais sinon, vous devrez l'obtenir du serveur.
Créez une copie du fichier tnsnames.ora dans un répertoire dans lequel vous pouvez écrire, modifiez le fichier en conséquence, puis définissez la variable d'environnement TNS_ADMIN à l'emplacement de ce répertoire.
Par exemple :
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