如何将SQLPlus与tnsnames.ora连接

时间:2016-12-29 10:23:59

标签: oracle sqlplus tnsnames

我希望连接我的Oracle数据库,无需安装Oracle客户端。

我下载了:

  • " Instant Client Package - Basic"和
  • " Instant Client Package - 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文件

当我向cmd发出命令时:

sqlplus user/password @HOST

我有一条消息:

ERROR: ORA-12560: TNS:protocol adapter error

但是当我尝试的时候:

sqlplus user/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=address to host)(Port=1521))(CONNECT_DATA=(SID=address to SID)))

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

3 个答案:

答案 0 :(得分:2)

你的命令应该是:

sqlplus user/password@HOST

密码和@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/y@HOST
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


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

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

答案 1 :(得分:0)

切勿手动编辑$ ORACLE_HOME / network / admin / tnsname.ora,使用“ netmr”创建本地名称。 不知道为什么会一样,但是不起作用。

答案 2 :(得分:0)

这个突击队对我来说很好用:

sqlplus /nolog 连接用户名/密码@主机名:端口/SERVICENAME