在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 用户?