Détails
Comment utiliser sqlplus pour se connecter à une base de données Oracle située sur un autre hôte sans modifier mon propre tnsnames.ora ?
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@remote_SID@hostname.network ;( I know, this one is not valid)
81
3
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
ou
Vous pouvez utiliser [easy connect] (https://docs.oracle.com/cd/E11882_01/network.112/e41945/naming.htm#NETAG255) pour cela :
Pour activer easy connect sur votre machine, vous devez l'ajouter au
NAMES.DIRECTORY_PATH
dans sqlnet.ora, par exemple :Si votre listener est sur un port autre que celui par défaut, utilisez
...@hostname.network: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 :