web-dev-qa-db-fra.com

Comment connecter SQLPlus à tnsnames.ora

Je veux me connecter avec ma base de données Oracle sans installer Oracle Client.

J'ai téléchargé:

  • "Package client instantané - De base" et
  • "Package client instantané - SQL * Plus"

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?

6
KamilK

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.

5
Alex Poole

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.

0
yxh