Utilisez tnsnames.ora dans Oracle SQL Developer

138

J'évalue Oracle SQL Developer .

My tnsnames.oraest rempli et tnspingune connexion définie dans tnsnames.orafonctionne correctement. Pourtant, SQL Developer n'affiche aucune connexion.

Oracle SQL Developer Soars mentionne que si

vous avez un logiciel client Oracle et un fichier tnsnames.ora déjà installés sur votre machine, Oracle SQL Developer remplira automatiquement le navigateur Connexions à partir des noms de service réseau définis dans tnsnames.ora.

J'ai également essayé de définir ma TNS_ADMINvariable d'environnement, mais après le redémarrage de SQL Developer, aucune connexion n'est toujours affichée.

Des idées?
Quelqu'un travaille avec succès avec SQL Developer et tnsnames.ora?

Peter Lang
la source
J'ai téléchargé et installé Oracle SQL Developer pour me connecter à une base de données Oracle 11g déjà existante. Mais il semble que je devrai télécharger et installer également le logiciel client Oracle, lequel dois-je utiliser si je suis sous Windows 10?
VoodooChild

Réponses:

219
  • Dans SQLDeveloper parcourez Tools --> Preferences, comme indiqué dans l'image ci-dessous.

    Préférences d'accès à SQLDeveloper

  • Dans les options Préférencesexpand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directorytnsnames.ora est présent.
  • Cliquez ensuite sur Ok , comme indiqué dans le diagramme ci-dessous.
    tnsnames.ora disponible surDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    SQLDeveloper update répertoire tnsnames

Vous pouvez maintenant vous connecter via les options TNSnames .

Chandra Sekhar
la source
4
tout le monde, Juste une petite mise à jour sur cet ancien (mais assez utile) post: n'essayez pas d'utiliser un lien symbolique sur Windows. Le développeur SQL ne semble pas savoir comment l'utiliser. M'a fait perdre du temps. J'espère que cela sauvera le vôtre.
Hellday5432
@ Hellday5432 - Oui, c'est exact. SQL Dev s'exécute sur Java qui ne comprend pas les raccourcis; par exemple, lors de l'ouverture d'un fichier, nous ne pouvons pas utiliser de raccourci pour accéder à un répertoire.
Kent Pawar
5
Raccourci Windows! = Lien symbolique. howtogeek.com/howto/16226/…
Matt Lachman
J'ai téléchargé et installé Oracle SQL Developer pour me connecter à une base de données Oracle 11g déjà existante. Mais il semble que je devrai télécharger et installer également le logiciel client Oracle, lequel dois-je utiliser si je suis sous Windows 10?
VoodooChild
Je ne vois pas l'option de répertoire Tnsnanes dans ma version 1.5.5 de SQL Developer.
Amit Chaurasia
24

Cette excellente réponse à une question similaire (que je ne pouvais malheureusement pas trouver auparavant) m'a aidé à résoudre le problème.

Copie du contenu de la réponse référencée:

SQL Developer recherchera à l'emplacement suivant dans cet ordre un fichier tnsnames.ora

$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
Clé de recherche TNS_ADMIN dans le registre
/etc/tnsnames.ora (non-Windows)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
LocalMachine \ ORACLE \ ORACLE_HOME

Si votre fichier tnsnames.ora n'est pas reconnu, utilisez la procédure suivante:

Définissez une variable d'environnement appelée TNS_ADMIN pour pointer vers le dossier qui contient votre fichier tnsnames.ora.

Sous Windows, cela se fait en accédant à Panneau de configuration> Système> Paramètres système avancés> Variables d'environnement ...
Sous Linux, définissez la variable TNS_ADMIN dans le fichier .profile de votre répertoire personnel.

Confirmez que le système d'exploitation reconnaît cette variable environnementale

Depuis la ligne de commande Windows: echo% TNS_ADMIN%

Depuis Linux: echo $ TNS_ADMIN

Redémarrez SQL Developer maintenant dans SQL Developer, cliquez avec le bouton droit sur Connexions et sélectionnez Nouvelle connexion .... Sélectionnez TNS comme type de connexion dans la liste déroulante. Vos entrées de tnsnames.ora devraient maintenant s'afficher ici.

Peter Lang
la source
3
Je sais que cela fait un moment, mais pouvez-vous extraire la partie pertinente de la réponse ici? Juste au cas où cette réponse (ou même la question) serait supprimée.
Dennis Meng
1
il s'agit essentiellement de définir la variable système TNS_ADMIN (car SQL Developer y recherche d'abord) et, après le redémarrage de SQL Developer, en choisissant New Connection, et dans la liste déroulante Type de connexion, au lieu de Basic, en choisissant TNS - so - tnsnames est bien vu, mais vous ne devriez pas vous attendre à ce que les connexions soient remplies automatiquement (c'était le cas avec moi)
hello_earth
la recherche m'a emmenée, alors j'ai mis à jour la réponse car il y a déjà référence à l'auteur @DennisMeng
TheGameiswar
7

J'ai eu le même problème, j'ai tnsnames.orabien fonctionné pour tous les autres outils mais SQL Developer ne l'utilisait pas. J'ai essayé toutes les suggestions sur le Web que j'ai pu trouver, y compris les solutions sur le lien fourni ici.
Rien n'a fonctionné.

Il se trouve que la base de données a été mise en cache des copies de sauvegarde de tnsnames.oracomme tnsnames.ora.bk2, tnsnames09042811AM4501.bak, tnsnames.ora.bketc. Ces fichiers ne sont pas lisibles par l'utilisateur moyen.

Je soupçonne que sqldeveloper correspond au modèle pour le nom et qu'il essayait de lire l'une de ces copies de sauvegarde et ne pouvait pas. Donc, il échoue simplement et ne montre rien dans la liste déroulante.

La solution est de rendre tous les fichiers lisibles ou de supprimer ou de déplacer les copies de sauvegarde hors du répertoire Admin.

Jim
la source
C'est probablement exactement ce que vous voyez. SQL Plus et SQL Developer voient / analysent / lisent tous les deux les tnsnames - donc si c'est mauvais, cela pourrait tomber en cascade et causer votre problème.
thatjeffsmith
0

Sur les nouvelles versions de macOS, il faut également définir java.library.path. Le moyen le plus simple / le plus sûr de faire cela [1] est de créer un ~/.sqldeveloper/<version>/sqldeveloper.conffichier et de le remplir comme tel:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

dinvlad
la source