web-dev-qa-db-fra.com

Les noms Oracle TNS ne sont pas affichés lors de l'ajout d'une nouvelle connexion à SQL Developer

J'essaie de me connecter à une base de données Oracle avec SQL Developer.

J'ai installé les pilotes Oracle .Net et placé le tnsnames.ora fichier à
C:\Oracle\product\11.1.0\client_1\Network\Admin

J'utilise le format suivant dans tnsnames.ora:

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(Host = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

Dans SQL Developer, lorsque j'essaie de créer une nouvelle connexion, aucun nom TNS n'apparaît sous forme d'options.

Y a-t-il quelque chose qui me manque?

90
Americus

Le développeur SQL recherchera à l'emplacement suivant le fichier tnsnames.ora

  1. $ HOME/.tnsnames.ora
  2. $ TNS_ADMIN/tnsnames.ora
  3. Clé de recherche TNS_ADMIN dans le registre
  4. /etc/tnsnames.ora (non-Windows)
  5. $ Oracle_HOME/network/admin/tnsnames.ora
  6. LocalMachine\SOFTWARE\Oracle\ORACLE_HOME_KEY
  7. LocalMachine\SOFTWARE\Oracle\ORACLE_HOME

Pour voir quel développeur SQL utilise, lancez la commande show tns dans la feuille de calcul

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

  1. Définissez une variable d'environnement appelée TNS_ADMIN pour qu'elle pointe vers le dossier contenant votre fichier tnsnames.ora.

    Sous Windows, vous accédez à 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.

  2. Confirmez que l'OS reconnaît cette variable environnementale

    A partir de la ligne de commande Windows: echo% TNS_ADMIN%

    De linux: echo $ TNS_ADMIN

  3. Redémarrez le développeur SQL

  4. Maintenant, dans SQL Developer, faites un clic 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 apparaître ici.
169
JaseAnderson

Développeur SQL ouvert. Allez dans Outils -> Préférences -> Bases de données -> Avancé puis définissez explicitement le répertoire Tnsnames

Mes TNSNAMES ont été configurés correctement et je pouvais me connecter à Toad, SQL * Plus, etc., mais je devais le faire pour que SQL Developer fonctionne. C’était peut-être un problème sous Windows 7, car il était difficile d’installer aussi.

29
Paul Mattey

Vous pouvez toujours trouver l'emplacement du fichier tnsnames.ora utilisé en exécutant TNSPING pour vérifier la connectivité (9i ou ultérieure):

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

Parfois, le problème vient de l’entrée que vous avez faite dans tnsnames.ora, mais pas que le système ne la trouve pas. Cela dit, je conviens qu’un ensemble de variables d’environnement tns_admin est une bonne chose, car il évite les problèmes inévitables qui se posent lors de la détermination du fichier tnsnames utilisé dans des systèmes dotés de plusieurs maisons Oracle.

13
DCookie

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

enter image description here

Dans les Préférences options expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directorytnsnames.ora présent.
Cliquez ensuite sur Ok.
comme indiqué dans le diagramme ci-dessous.

enter image description here

Vous avez terminé!

Vous pouvez maintenant vous connecter via les options TNSnames.

13
Chandra Sekhar

Les étapes mentionnées par Jason sont très bonnes et devraient fonctionner. Il y a cependant une petite différence avec SQL Developer. Il met en cache les spécifications de connexion (hôte, nom du service, port) lors de la première lecture du fichier tnsnames.ora. Ensuite, les spécifications ne sont pas invalidées lorsque l'entrée d'origine est supprimée du fichier tnsname.ora. Le cache persiste même après que SQL Developer a été arrêté et redémarré. Ce n'est pas une façon si illogique de gérer la situation. Même si un fichier tnsnames.ora est temporairement indisponible, SQL Developer peut toujours établir la connexion tant que les spécifications d'origine sont toujours vraies. Le problème vient avec leur prochain petit tour. SQL Developer considère les noms de service du fichier tnsnames.ora comme des valeurs sensibles à la casse lors de la résolution de la connexion. Ainsi, si vous aviez auparavant un nom d’entrée ABCD.world dans le fichier et que vous l’aviez remplacée par une nouvelle entrée nommée abcd.world, SQL Developer NE met PAS à jour ses spécifications de connexion pour ABCD.world. Il traitera alors abcd.world. connexion tout à fait. Pourquoi ne suis-je pas surpris qu'un produit Oracle considère comme sensibles au casse le contenu d'un format de fichier développé par Oracle qui est expressément insensible à la casse?

2
Allan Stewart

Dans Sql Developer, accédez à Outils-> préférences-> Base de données-> Fonctions avancées-> Définissez le répertoire Tnsnames sur le répertoire contenant tnsnames.ora.

1
B Chowdhary

Aucune des modifications ci-dessus n'a fait de différence dans mon cas. Je pouvais exécuter TNS_PING dans la fenêtre de commande, mais SQL Developer ne pouvait pas savoir où se trouvait tnsnames.ora.

Le problème dans mon cas (Windows 7 - 64 bits - Entreprise) était que le programme d'installation d'Oracle a dirigé le raccourci du menu Démarrer vers la mauvaise version de SQL Developer. Il semble que trois instances SQL Developer accompagnent le programme d'installation. L'un est dans% Oracle_HOME%\client_1\sqldeveloper\et deux dans% Oracle_HOME%\client_1\sqldeveloper\bin \.

Le programme d’installation a installé un raccourci du menu Démarrer pointant vers une version du répertoire bin qui ne fonctionnait tout simplement pas. Il demanderait un mot de passe à chaque démarrage de SQL Developer, ne me souviendrait pas des choix que j'avais faits et affiche une liste vide lorsque j'ai choisi TNS comme mécanisme de connexion. De plus, le champ Annuaire TNS dans les paramètres avancés de la base de données n’est pas référencé dans d’autres publications.

J'ai jeté l'ancien raccourci Démarrer et installé un raccourci vers% Oracle_HOME%\client_1\sqldeveloper\sqldeveloper.exe. Ce changement a résolu le problème dans mon cas.

0
Michael