143 votes

Utiliser tnsnames.ora dans Oracle SQL Developer

J'évalue Développeur Oracle SQL .

Mon tnsnames.ora est alimenté, et un tnsping à une connexion définie dans tnsnames.ora fonctionne bien. Pourtant, SQL Developer n'affiche aucune connexion.

Le développeur Oracle SQL prend son envol mentionne, que si

si le logiciel client Oracle et un fichier tnsnames.ora sont déjà installés sur votre machine, Oracle SQL Developer alimentera automatiquement le navigateur Connexions à partir des noms de services nets définis dans tnsnames.ora.

J'ai également essayé de définir mon TNS_ADMIN mais après avoir redémarré SQL Developer, il n'y a toujours pas de connexions affichées.

Des idées ?
Quelqu'un a-t-il réussi à travailler avec SQL Developer et tnsnames.ora ?

2 votes

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 doive également télécharger et installer le logiciel client Oracle, lequel dois-je utiliser si je suis sous Windows 10 ?

231voto

Chandra Sekhar Points 5388
  • En Développeur SQL consultez le site Tools --> Preferences comme le montre l'image ci-dessous.

    SQLDeveloper access preferences

  • Dans le Préférences options expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory donde tnsnames.ora présent.

  • Cliquez ensuite sur Ok , comme le montre le schéma ci-dessous.
    tnsnames.ora disponible à l'adresse Drive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    SQLDeveloper update tnsnames directory

Vous pouvez maintenant vous connecter via le Noms des TNS options.

4 votes

Tout le monde, Juste une petite mise à jour sur ce vieux (mais très utile) post : n'essayez pas d'utiliser un lien symbolique sous Windows. Le développeur SQL ne semble pas savoir comment l'utiliser. Cela m'a fait perdre du temps. J'espère que cela vous fera gagner du temps.

0 votes

@Hellday5432 - Oui, c'est exact. SQL Dev fonctionne avec Java qui ne comprend pas les raccourcis ; par exemple, lors de l'ouverture d'un fichier, nous ne pouvons pas utiliser un raccourci pour sauter à un répertoire.

5 votes

Raccourci Windows != lien symbolique. howtogeek.com/howto/16226/

27voto

Peter Lang Points 25877

Ce site excellente réponse à une question similaire (que je n'ai pas pu trouver auparavant, malheureusement) m'a aidé à résoudre le problème.

Copie du contenu d'une réponse référencée :

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

$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 \SOFTWARE\ORACLE\ORACLE_HOME

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

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

Sous Windows, cette opération s'effectue en accédant au 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

À partir de la ligne de commande de Windows : echo %TNS_ADMIN%.

Sous linux : echo $TNS_ADMIN

Redémarrer SQL Developer Maintenant, dans SQL Developer, cliquez avec le bouton droit de la souris 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.

3 votes

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.

1 votes

En gros, cela revient à définir la variable système TNS_ADMIN (parce que SQL Developer y cherche ~ en premier) et, après avoir redémarré SQL Developer, choisir Nouvelle connexion, et dans la liste déroulante Type de connexion, au lieu de Basic, choisir TNS - donc - tnsnames est bien vu, mais il ne faut pas s'attendre à ce que les connexions soient remplies automatiquement (c'était mon cas).

0 votes

La recherche m'a pris elle, donc j'ai mis à jour la réponse puisqu'il y a déjà une référence à l'auteur @DennisMeng

7voto

Jim Points 31

J'ai eu le même problème, tnsnames.ora a bien fonctionné pour tous les autres outils mais SQL Developer ne l'a pas utilisé. 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 s'avère que la base de données mettait en cache des copies de sauvegarde de tnsnames.ora comme tnsnames.ora.bk2 , tnsnames09042811AM4501.bak , tnsnames.ora.bk etc. Ces fichiers n'étaient pas lisibles par l'utilisateur moyen.

Je soupçonne sqldeveloper de faire une recherche par motif pour le nom et d'avoir essayé de lire une de ces copies de sauvegarde sans y parvenir. Donc il échoue simplement et ne montre rien dans la liste déroulante.

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

0 votes

C'est probablement exactement ce que vous voyez. SQL Plus et SQL Developer voient/analysent/lisent tous deux les noms de noeuds. - donc si l'un d'entre eux est défectueux, ça peut se répercuter et causer votre problème.

2voto

marchelloUA Points 11

Cela m'a aidé :

Posté le : 8/12/2011 4:54

Définir le répertoire tnsnames outils->Préférences->Base de données->Avancé->Répertoire tnsnames

https://forums.oracle.com/forums/thread.jspa?messageID=10020012

0voto

dinvlad Points 441

Sur les versions plus récentes de macOS, il faut également définir java.library.path . La manière la plus simple et la plus sûre de le faire [1] est de créer ~/.sqldeveloper/<version>/sqldeveloper.conf et de le remplir comme tel :

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X