Je souhaite me connecter à une base de données Oracle située sur un autre hôte à l'aide de sqlplus. Cette page a suggéré d'ajouter un élément sur mes noms de domaine pour se connecter à cette base de données.
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
et ensuite l'utiliser dans sqlplus
sqlplus user/pass@local_SID
Cependant, dans mes circonstances, la modification des noms locaux n'est pas possible. Est-il possible de se connecter à une base de données distante en utilisant simplement l'argument sqlplus sans avoir à changer de nom? Quelque chose comme
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
database
c'est toujours un alias de TNS, qui doit exister dans letnsnames.ora
, alors c'est le même que celui que Louis essayait d'éviter?Réponses:
Peut-être, et cela dépend-il de l'environnement de ligne de commande que vous utilisez, vous devez citer la chaîne, quelque chose comme:
ou
la source
Vous pouvez utiliser easy connect pour cela:
Pour permettre une connexion facile sur votre
NAMES.DIRECTORY_PATH
ordinateur, vous devez l'ajouter à dans sqlnet.ora, par exemple:Si votre auditeur utilise un port autre que celui par défaut
[email protected]:port/...
.En fait, il semble que vous deviez fournir un nom de service, pas un SID; ils peuvent être les mêmes mais sinon, vous devrez vous en procurer au serveur.
la source
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 sur l'emplacement de ce répertoire.
par exemple:
la source
Sur les systèmes Unix / Linux, vous pouvez utiliser les fichiers de configuration de niveau utilisateur pour remplacer les entrées de niveau système.
Les fichiers de configuration au niveau du système se trouvent dans le répertoire
$TNS_ADMIN
. Si la variableTNS_ADMIN
n'est pas définie, la recherche est effectuée dans le répertoire$ORACLE_HOME/network/admin
.Les fichiers de configuration de niveau utilisateur ne remplacent pas les fichiers de configuration de niveau système dans leur ensemble (car le
TNS_ADMIN
répertoire remplace le$ORACLE_HOME/network/admin
répertoire entier ), mais ils ajoutent ou modifient des entrées des fichiers de configuration de niveau système. Si une entrée existe dans un fichier de configuration au niveau de l'utilisateur, celui-ci est utilisé. S'il n'existe pas dans le fichier de configuration au niveau de l'utilisateur, l'entrée du fichier de configuration au niveau du système est utilisée.la source