J'essaye 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'essaye de créer une nouvelle connexion, aucun nom TNS n'apparaît comme option.
Y a-t-il quelque chose qui me manque?
$TNS_ADMIN
le RÉPERTOIRE n'est-il pas le.ora
fichier réelOuvrez SQL Developer. Allez dans Outils -> Préférences -> Bases de données -> Avancé Puis définissez explicitement le répertoire Tnsnames
Mon TNSNAMES a été configuré correctement et je pouvais me connecter à Toad, SQL * Plus, etc. mais j'avais besoin de le faire pour que SQL Developer fonctionne. C'était peut-être un problème avec Win 7, car l'installation était également difficile.
la source
Dans SQLDeveloper parcourez
Tools --> Preferences
, comme indiqué dans l'image ci-dessous.Dans les options Préférences
expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory
où tnsnames.ora est présent.Cliquez ensuite sur Ok .
comme indiqué dans le diagramme ci-dessous.
Vous pouvez maintenant vous connecter via les options TNSnames .
la source
Vous pouvez toujours trouver l'emplacement du fichier tnsnames.ora utilisé en exécutant TNSPING pour vérifier la connectivité (9i ou version ultérieure):
Parfois, le problème vient de l'entrée que vous avez faite dans tnsnames.ora, non pas que le système ne peut pas la trouver. Cela dit, je suis d'accord pour dire qu'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.
la source
Les étapes mentionnées par Jason sont très bonnes et devraient fonctionner. Il y a cependant une petite torsion avec SQL Developer. Il met en cache les spécifications de connexion (hôte, nom du service, port) la première fois qu'il lit le fichier tnsnames.ora. Ensuite, il n'invalide pas les spécifications lorsque l'entrée d'origine est supprimée du fichier tnsname.ora. Le cache persiste même après l'arrêt et le redémarrage de SQL Developer. 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 prochaine petite tournure. SQL Developer traite les noms de service dans le fichier tnsnames.ora comme des valeurs sensibles à la casse lors de la résolution de la connexion. Donc, si vous aviez un nom d'entrée ABCD. world dans le fichier et que vous l'avez remplacé par une nouvelle entrée nommée abcd.world, SQL Developer ne mettra PAS à jour ses spécifications de connexion pour ABCD.world - il traitera abcd.world comme une connexion totalement différente. 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?
la source
Dans Sql Developer, accédez à Tools-> preferences-> Datababae-> advanced-> Set Tnsname directory to the directory contenant tnsnames.ora
la source
Aucun des changements ci-dessus n'a fait de différence dans mon cas. Je pourrais 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 pointait le raccourci du menu Démarrer vers la mauvaise version de SQL Developer. Il semble y avoir trois instances SQL Developer qui accompagnent le programme d'installation. L'un se trouve 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 qui pointait vers une version du répertoire bin qui ne fonctionnait tout simplement pas. Il demandait un mot de passe à chaque fois que je démarrais SQL Developer, ne me souvenait pas des choix que j'avais faits et affichait une liste vide lorsque je choisissais TNS comme mécanisme de connexion. Il n'a pas non plus le champ Annuaire TNS dans les paramètres avancés de la base de données référencés dans d'autres articles.
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.
la source