Je vais supposer que vous utilisez le fichier tnsnames.ora pour spécifier vos services de base de données disponibles. Si tel est le cas, les erreurs de connexion se résument généralement à deux choses.
-
L'application ne peut pas trouver l'entrée TNS que vous avez spécifiée dans la chaîne de connexion.
-
L'entrée TNS a été trouvée, mais l'IP ou l'hôte n'est pas correct dans le fichier tnsnames.ora.
Pour développer le numéro 1 (qui, je pense, est votre problème). Lorsque vous dites à Oracle de se connecter en utilisant quelque chose comme :
sqlplus user/[email protected]
Le service est défini dans le fichier tnsnames.ora. Si j'essaie de me connecter avec un service qui n'est pas défini dans mon tnsnames.ora, j'obtiens l'erreur suivante :
[[email protected] ~]$ sqlplus sodonnel/[email protected]
SQL*Plus: Release 11.2.0.1.0 Production on Mon Oct 31 21:42:15 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
Vous devez donc vérifier quelques éléments :
- Existe-t-il un fichier tnsnames.ora ? Je pense que oui, car votre console peut se connecter
- Y a-t-il une entrée dans le fichier pour le service - je pense aussi que oui car la console se connecte
- L'application peut-elle trouver le fichier tnsnames.ora ?
Votre problème pourrait bien être le numéro 3 - l'application s'exécute-t-elle sous un autre utilisateur que lorsque vous exécutez la console ?
Oracle recherche le fichier tnsnames.ora dans le répertoire défini dans la variable d'environnement TNS_ADMIN - Si vous exécutez en tant qu'utilisateurs différents, alors peut-être que la variable d'environnement TNS_ADMIN n'est pas définie et qu'il ne peut donc pas trouver le fichier ?