Je veux me connecter avec ma base de données Oracle sans installer Oracle Client.
J'ai téléchargé:
J'ai ensuite créé un dossier sur C:\Oracle\instantclient
, Où j'ai extrait tous les packages.
J'ai été défini system environment
Comme:
Path - C:\Oracle\instantclient NSL_LANG - with properly key Oracle_HOME - C:\Oracle\instantclient Oracle_SID - C:\Oracle\instantclient TNS_ADMIN - C:\Oracle\instantclient
J'ai ensuite créé un fichier tnsnames.ora
Avec une configuration dans C:\Oracle\instantclient
et quand j'ai mis une commande à cmd:
sqlplus user/password @Host
J'ai un message comme:
ERROR: ORA-12560: TNS:protocol adapter error
mais quand j'ai essayé comme:
sqlplus user/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=address to Host)(Port=1521))(CONNECT_DATA=(SID=address to SID)))
tout fonctionne correctement. Pourquoi SQL a un problème avec la reconnaissance du fichier tnsnames.ora?
Votre commande doit être:
sqlplus user/password@Host
sans espace entre le mot de passe et @Host
partie.
Avec l'espace, il traite le @Host
en tant que script à exécuter une fois connecté, et il essaie de se connecter localement, ce qui a produit cette erreur TNS. (Comme vous ne vous connectez pas, le Host
n'est jamais évalué pour établir s'il existe, donc c'est effectivement du bruit à ce stade).
C:\>sqlplus -l -s x/y @Host
ERROR:
ORA-12560: TNS:protocol adapter error
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
Une fois l'espace supprimé, il recherche Host
comme alias TNS:
C:\>sqlplus -l -s x/y@Host
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
Pour moi, une erreur persiste car je n'ai pas Host
dans mon tnsnames.ora
, mais c'est une erreur différente et vous pouvez voir qu'il essaie au moins de l'utiliser comme alias TNS. Si vous l'avez défini correctement, il pourra se connecter à votre base de données.
NE modifiez JAMAIS $ Oracle_HOME/network/admin/tnsname.ora manuellement, utilisez "netmr" pour créer le nom local. Je ne sais pas pourquoi c'est pareil mais ça ne marche pas.