【问题标题】:How to connect SQLPlus with tnsnames.ora如何连接 SQLPlus 与 tnsnames.ora
【发布时间】:2016-12-29 10:23:58
【问题描述】:

我想在安装 Oracle 客户端的情况下连接我的 Oracle 数据库。

我下载了:

  • “Instant Client Package - 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

然后我在C:\Oracle\instantclient 中创建了带有配置的tnsnames.ora 文件

当我向 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 文件?

【问题讨论】:

    标签: oracle sqlplus tnsnames


    【解决方案1】:

    你的命令应该是:

    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
    

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

    【讨论】:

    • 天啊,你说得对!多么愚蠢的错误:/现在工作正常。非常感谢亚历克斯。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这个突击队很适合我:

      sqlplus /nolog 连接用户名/密码@hostname:port/SERVICENAME

      【讨论】:

        猜你喜欢
        • 2012-01-16
        • 2013-09-15
        • 1970-01-01
        • 2021-07-27
        • 1970-01-01
        • 2012-12-21
        • 2015-08-30
        • 1970-01-01
        • 2016-09-03
        相关资源
        最近更新 更多