196 votes

ORA-12505, TNS:listener ne connaît pas actuellement le SID donné dans le descripteur de connexion.

J'ai installé Oracle 11g Express Edition Release 2 dans mon système d'exploitation Windows 7 64 bit et j'ai essayé d'exécuter le programme JDBC, puis j'ai obtenu l'erreur suivante :

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.jlcindia.jdbc.JDBCUtil.geOracleConnection(JDBCUtil.java:28)
    at Lab3O.main(Lab3O.java:15)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
    ... 8 more

4voto

Jose Rego Points 31

Je suis initialement venu ici avec le même problème. Je venais d'installer Oracle 12c sur Windows 8 (64-bit), mais j'ai depuis résolu le problème en utilisant 'TNSPING xe' sur la ligne de commande... Si la connexion n'est pas établie ou le nom n'est pas trouvé, essayez le nom de la base de données, dans mon cas c'était 'orcl'... Si la connexion n'est pas établie ou si le nom n'est pas trouvé, essayez le nom de la base de données, dans mon cas, c'était 'orcl'....

4voto

gaurav patil Points 11

Une possibilité dont je n'ai pas vu beaucoup parler est qu'il peut y avoir un problème de résolution du nom d'hôte sur la machine hôte elle-même. S'il n'y a pas d'entrée pour $(hostname) dans /etc/hosts, le listener Oracle est confus et n'apparaît pas.

Cela s'est avéré être mon problème, et l'ajout du nom d'hôte et de l'adresse IP dans /etc/hosts a résolu le problème.

3voto

Vijay Thayalan Points 83

J'ai rencontré le même problème et l'ai résolu en redémarrant le service OracleServiceXE. Allez dans Services.msc et vérifiez que le service 'OracleServiceXE' est actif et fonctionne.

3voto

Akshay Lokur Points 104

J'ai résolu ce problème en modifiant " SID " à " SERVICE_NAME " dans mon fichier TNSNAMES.ora.

Vérifiez si votre BD demande le SID ou le SERVICE_NAME.

Cheers

2voto

user2905345 Points 11

J'ai également rencontré le même problème. J'avais installé Oracle Express edition 10g dans le système d'exploitation Windows XP en utilisant VMware et cela fonctionnait bien. Comme il était très difficile de taper des requêtes SQL dans l'utilitaire SQL fourni par 10g et que j'avais l'habitude de travailler avec SQL developer, j'ai installé SQL developer 32 bits dans XP et j'ai essayé de me connecter à mon SID DB "XE". Mais la connexion a échoué avec l'erreur-ORA-12505 TNS listener doesn't currently know of SID given in connect descriptor. Je n'arrivais pas à comprendre comment ce problème pouvait survenir, puisque l'utilitaire SQL fonctionnait parfaitement et que j'avais également créé quelques mappings Informatica à l'aide de cet utilitaire. J'ai beaucoup navigué sur ce sujet et j'ai appliqué les suggestions qui m'ont été proposées après avoir cherché le statut de "lsnrctl" sur les forums publics, mais sans succès. Cependant, ce matin, j'ai essayé de créer à nouveau une nouvelle connexion, et voilà, cela a fonctionné sans problème. Je suppose, après avoir lu quelques messages, que parfois l'écouteur écoute avant que la base de données ne se connecte ou quelque chose comme ça (pardonnez-moi pour ma référence grossière car je suis un débutant ici) mais je suggère de redémarrer la machine et de vérifier à nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X