2016-12-29 31 views
2

我想连接我的Oracle数据库而不使用安装Oracle客户端。如何将SQLPlus与tnsnames.ora连接

我下载:

  • “即时客户端程序包 - Basic” 和
  • “即时客户端程序包 - SQL * Plus的”

然后我就C:\Oracle\instantclient,我在那里提取的所有创建的文件夹包。

我已经设置system environment像:

Path - C:\Oracle\instantclient NSL_LANG - with properly key ORACLE_HOME - C:\Oracle\instantclient ORACLE_SID - C:\Oracle\instantclient TNS_ADMIN - C:\Oracle\instantclient

然后创建tnsnames.ora文件与配置在C:\Oracle\instantclient

,当我puted的命令CMD:

sqlplus user/password @HOST

我有一个mes圣人像:

ERROR: ORA-12560: TNS:protocol adapter error

但是当我试图像:

sqlplus user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=address to host)(Port=1521))(CONNECT_DATA=(SID=address to SID)))

一切正常。为什么SQL在识别tnsnames.ora文件时遇到问题?

回答

2

你的命令应该是:

sqlplus user/[email protected] 

,密码和@HOST部分之间没有空格。

使用空间它将@HOST作为脚本在您登录后执行,并且它会尝试本地连接,从而产生该TNS错误。 (因为你没有登录HOST从来没有被评估,以确定它是否存在,所以它现在是有效的噪音)。

C:\>sqlplus -l -s x/y @HOST 
ERROR: 
ORA-12560: TNS:protocol adapter error 


SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus 

随着空间删除它查找HOST为TNS别名:

C:\>sqlplus -l -s x/[email protected] 
ERROR: 
ORA-12154: TNS:could not resolve the connect identifier specified 


SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus 

对我来说,因为我没有HOSTtnsnames.ora做到这一点仍然得到一个错误,但它是一个不同的错误你可以看到它至少试图用它作为TNS别名。如果你已经正确定义了它,它将能够连接到你的数据库。

+0

OMG,你说得对!多么愚蠢的错误:/ 现在工作正常。非常感谢Alex。 – KamilK