在win7中输入sqlplus命令连接到windows server 2008上的Oracle数据库

Posted

技术标签:

【中文标题】在win7中输入sqlplus命令连接到windows server 2008上的Oracle数据库【英文标题】:enter sqlplus command in win7 for connect to Oracle database on windows server 2008 【发布时间】:2017-03-28 07:46:02 【问题描述】:

我在 windows7 中输入这个命令连接到 windows server 2008 上的 Oracle 数据库:

 sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'

但它会引发此错误:

错误:ORA-12560:TNS:协议适配器错误。

我用谷歌搜索,我发现的只是检查 oracle 服务是否在 Windows Server 2008 中启动。 我查了一下,所有的oracle服务都启动了。 我该怎么办?

【问题讨论】:

【参考方案1】:

您是否检查了以下内容 1. 你能从win 7机器ping到Server吗?如果是 2. 检查服务器的防火墙。禁用并测试。 3. 如果还不行,检查监听服务。 您可以通过简单地创建 tns 并 ping 来检查它。 tnsping tnsname 如果一切正常,请与我分享版本信息和以上结果。希望它会得到解决。谢谢。

【讨论】:

我禁用了我的防病毒、个人防火墙/网络流量过滤部分,它可以工作【参考方案2】:

你不应该有单引号;他们将整个字符串解释为用户名,因此它可能会提示输入密码,然后得到 ORA-12560 错误。

sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))

或者您仍然可以将连接描述放在引号中:

sqlplus user/pass@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'

或者如果您知道服务名称(可能与 SID 相同也可能不同),您可以使用简单连接语法:

sqlplus user/pass@//hostname.network:1521/remote_service_name

即使默认端口也可以省略,但我更喜欢看到它。

Read more.

【讨论】:

它在错误连接超时时不起作用。然后再次询问用户名和密码,当我再次输入引发最后一个错误时 但它修复了直接错误。您确定主机名和端口正确吗?是否有防火墙阻止您访问该主机上的端口? (您也可以使用sqlplus -l user/..... 来阻止它在失败时再次提示)。

以上是关于在win7中输入sqlplus命令连接到windows server 2008上的Oracle数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 子进程模块将 sqlplus 作为 sudo 连接到 oracle 用户?

SQLPlus的两种登录方式的不同效果

查询oracle数据库所有用户的sqlplus命令是啥

查询oracle数据库所有用户的sqlplus命令是啥

用sqlplus连接数据库时,为啥会出Oracle not available错误?

win7访问XP共享的时候 提示 输入您的密码来连接到