la connexion à oracle à distance via cygwin sqlplus
Je suis en train d'utiliser cygwin sqlplus pour se connecter à une distance de l'installation d'oracle situé à myserver.mycompany.com port de 1530. Lorsque j'essaie
sqlplus username@myserver.mycompany.com:1530/orcl
J'obtiens l'erreur:
ORA-12154: TNS:could not resolve the connect identifier specified
Lorsque j'ai mis ORACLE_HOME
d' /cygdrive/c/oracle/product/10.2.0/client_1
, je reçois un autre message d'erreur:
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
Je peux en telnet sur le port du serveur 1530, et le SQL Developer installé localement est également capable de se connecter à la base de données. Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
Je n'étais pas au courant, il était natif de cygwin client pour Oracle (corrigez-moi si je me trompe, mais je ne trouve pas de mention sur Oracle du site web). Si vous êtes en utilisant Cygwin avec le client Windows, vous devez utiliser un natif de windows chemin d'accès. Il ne comprends pas votre /cygdrive chemin.
Cependant, j'ai utilisé Win32 Oracle clients avec cygwin et de le faire fonctionner - même les scripts shell serait de travailler sur Cygwin, Linux et Solaris.
cygpath
utilitaire peut être pratique pour convertir entre Windows et les chemins POSIX.Il n'y a pas un cygwin client Oracle. Comme la réponse ci-dessus, utilisez le ORACLE_HOME définir le chemin d'accès windows.
Pour la première partie de votre question, essayez de voir ce que la TNS_NAMES env variable est définie, et si pas, vous pouvez essayer le réglage à la bonne place. Habituellement, la valeur par défaut est %ORACLE_HOME%/network/admin/tnsnames.ora . SQL Developer garde sa propre copie du fichier tnsnames, de sorte que vous ne pouvez pas répondre sur que pour résoudre le problème.
Combinant les détails des autres réponses (qui m'a pris un peu, donc je poste en tant que distincte de répondre au lieu de commentaires):
La
$ORACLE_SID
et, si elle est définie,$TNS_ADMIN
(et probablement d'autres relatives au chemin Oracle variables) doivent utiliser Windows-chemins. Votre Cygwin$PATH
variable doit bien sûr utiliser Cygwin notation (/drives/c/…
). Donc, je ai inclus dans mon.bashrc
:Après cela, je n'avais plus de problèmes avec les appels par exemple
tnsping
ousqlplus
. Comme ci-dessus est juste un exemple, vous devrez ajuster les chemins pour refléter votre installation/configuration 🙂NXC est droit, il n'était pas cygwin client, j'ai été à l'aide, mais les fenêtres sqlplus client.
- Je définir les variables d'environnement windows pour
ORACLE_HOME
etORACLE_SID
et a ensuite été en mesure d'exécuter sqlplus dans un shell bash cygwin à l'aide de lanet_service_name
de tnsnames.ora.La façon dont il a travaillé pour moi était de m'enlever
/cygdrive/d
ou/cygdrive/c
et de les remplacer avecd:/
ouc:/
et puis votresqlplus
appel à l'intérieur de cygwin session de travail. Le/cygdrive/DriveLetter
est de le confondre.J'ai la même erreur, comme vous,
vous devez définir non seulement
ORACLE_HOME
dans windows Variables,Mais aussi
PATH
inclure%ORACLE_HOME%\bin
ensuite, vous pouvez ouvrir les fenêtres cmd,
essayer
sqlplus username/password@your_define_tnsname
si bien, puis retirez toutes les
ORACLE PATH
paramètre dans cygwin, redémarrez cygwin,essayer.si échec, devrait laisser sqlplus fonctionne bien sous windows cmd au premier