Question

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

J'ai installé les pilotes .Net oracle et placé le fichier tnsnames.ora sur
C: \ Oracle \ product \ 11.1.0 \ client_1 \ Réseau \ 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?

Était-ce utile?

La solution

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

  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 connaître le développeur SQL utilisé, exécutez la commande show tns dans la feuille de calcul

.

Si votre fichier tnsnames.ora n'est pas reconnu, procédez comme suit:

  1. Définissez une variable d'environnement appelée TNS_ADMIN afin 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 de base.

  2. Vérifiez que le système d'exploitation reconnaît cette variable d'environnement

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

    De linux: echo $ TNS_ADMIN

  3. Redémarrez SQL Developer

  4. 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 apparaître ici.

Autres conseils

Ouvrez SQL Developer. Allez dans Outils - > Préférences - > Bases de données - > Avancée Puis explicitement définir 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. L’installation était également compliquée.

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 le système ne peut pas la trouver. 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.

Dans SQLDeveloper , parcourez Outils - > Préférences , comme indiqué dans l'image ci-dessous.

entrer la description de l'image ici

Dans les Préférences options , développez Base de données - > sélectionnez Avancé - > sous " Répertoire des noms de domaine " - > Parcourez le répertoire tnsnames.ora est présent.
Cliquez ensuite sur Ok .
comme indiqué dans le diagramme ci-dessous.

entrer la description de l'image ici

  

Vous avez terminé!

Vous pouvez maintenant vous connecter via les options TNSnames .

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 étonné qu'un produit Oracle considère comme sensibles à la casse le contenu d'un format de fichier développé par Oracle qui est expressément insensible à la casse?

Dans Sql Developer, naviguez dans Outils- > préférences- > Datababae- > avancé- > Attribuez le répertoire Tnsname au répertoire contenant tnsnames.ora

.

Aucun des changements 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 savait pas où se trouvait tnsnames.ora.

Dans mon cas (Windows 7 - 64 bits - Entreprise), le problème é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 qui pointe vers une version du répertoire bin qui ne fonctionne 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top