Les noms TNS d'Oracle ne s'affichent pas lors de l'ajout d'une nouvelle connexion au développeur SQL
j'essaie de me connecter à une base de données oracle avec SQL Developer.
j'ai installé les pilotes oracle de .Net et placé le fichier tnsnames.ora
à
C:Oracleproduct.1.0client_1NetworkAdmin
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, quand j'essaie de créer une nouvelle connexion, aucun nom TNS n'apparaît en option.
y a-t-il quelque chose que je manque?
7 réponses
SQL Developer va chercher dans l'ordre suivant pour un nom de fichier.dossier 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\SOFTWARE\ORACLE\ORACLE_HOME
pour voir quel développeur SQL utilise, lancez la commande show tns
dans la feuille de travail
si votre nom.ora fichier 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 vos noms de domaine.ora fichier.
dans Windows, ceci est fait en navigant vers Panneau de configuration > système > Paramètres Système avancés > Variables D'environnement...
dans Linux, définissez la variable TNS_ADMIN dans le .fichier de profil dans votre répertoire personnel.
-
confirmer que l'eo reconnaît cette variable environnementale
de la ligne de commande Windows: echo % TNS_ADMIN %
de linux: echo $TNS_ADMIN
-
redémarrer le développeur SQL
- maintenant dans le développeur SQL clic droit sur connexions et sélectionnez nouvelle connexion... . Sélectionnez TNS comme type de connexion dans la boîte déroulante. Vos entrées de tnsnames.ora devrait maintenant l'affichage ici.
open SQL Developer. Aller à Outils - > Préférences - > bases de données - > avancé Ensuite, définissez explicitement le répertoire Tnsnames
mes noms ont été configurés correctement et je pouvais me connecter à Toad, SQL*Plus etc. mais j'avais besoin de faire ça pour que SQL Developer fonctionne. Peut-être que C'était une question de Win 7 car c'était une douleur à installer aussi.
Vous pouvez toujours trouver l'emplacement de la tnsnames.fichier ora utilisé en exécutant TNSPING pour vérifier la connectivité (9i ou plus tard):
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.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 est avec l'entrée que vous avez faite dans tnsnames.ora, bien que le système ne puisse pas le trouver. Cela dit, je suis d'accord que d'avoir un ensemble de variables d'environnement tns_admin est une bonne chose, car cela évite les problèmes inévitables qui se posent pour déterminer exactement quel fichier tnsnames est utilisé dans les systèmes avec plusieurs maisons oracle.
dans SQLDeveloper browse Tools --> Preferences
, comme montré dans l'image ci-dessous.
Dans le Préférences options expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory
où noms de domaine.ora présent.
puis cliquez sur Ok .
comme indiqué dans le schéma ci-dessous.
Vous avez Fait!
maintenant, vous pouvez vous connecter via les options TNSnames .
les étapes mentionnées par Jason sont très bonnes et devraient fonctionner. Il y a un petit rebondissement avec SQL Developer, cependant. Il cache les spécifications de connexion (hôte, nom de service, port) la première fois qu'il lit les noms de réseau.ora fichier. Ensuite, il n'invalide pas les spécifications lorsque l'entrée originale est retirée du nomtns.ora fichier. Le cache persiste même après que SQL Developer a été terminé et redémarré. Ce n'est pas si illogique façon de gérer la situation. Même si un tnsnames.le fichier ora est temporairement indisponible, SQL Developer peut encore faire la connexion aussi longtemps que les spécifications originales sont encore vraies. Le problème vient avec leur prochain petit rebondissement. SQL Developer traite les noms de services dans les noms de domaines.Ora file comme valeurs sensibles à la casse lors de la résolution de la connexion. Donc si vous aviez un nom d'entrée ABCD.monde dans le fichier et vous l'a remplacée par une nouvelle entrée nommée abcd.world, SQL Developer ne mettrait pas à jour ses spécifications de connexion pour ABCD.monde - il permettra de traiter abcd.le monde comme un lien tout à fait différent. Pourquoi ne suis-je pas surpris qu'un produit Oracle traite comme sensible à la casse le contenu d'un format de fichier développé par oracle qui est expressément insensible à la casse?
Dans Sql Developer, navidate dans Outils->préférences->Datababae->avancé->Set Tnsname répertoire le répertoire contenant tnsnames.ora
aucun des changements ci-dessus n'a fait de différence dans mon cas. Je pouvais lancer TNS_PING dans la fenêtre de commande mais SQL Developer ne pouvait pas trouver où tnsnames.ora l'était.
le problème dans mon cas (Windows 7 - 64 bit - Enterprise ) était que L'installateur Oracle pointait le raccourci du menu Démarrer vers la mauvaise version de SQL Developer. Il semble y avoir trois instances de développement SQL qui accompagnent L'installateur. L'un est en %ORACLE_HOME % \client_1\sqldeveloper\ et deux sont en %ORACLE_HOME%\client_1\sqldeveloper\bin\ .
l'installateur a installé un raccourci de menu de démarrage qui pointait vers une version dans le répertoire bin qui ne fonctionnait tout simplement pas. Il demandait un mot de passe à chaque fois que je lançais SQL Developer, sans me souvenir des choix que j'avais faits et affichait une liste vierge lorsque je choisissais TNS comme mécanisme de connexion. Il n'a pas non plus le champ de répertoire TNS dans les paramètres avancés de la base de données référencés dans d'autres messages.
j'ai jeté l'ancien raccourci de démarrage et installé un raccourci à %ORACLE_HOME%\client_1\sqldeveloper\sqldeveloper.EXE. Ce changement a réglé le problème dans mon cas.