【问题标题】:SQLPLUS Unable to connect in windows command promptSQLPLUS 无法在 Windows 命令提示符下连接
【发布时间】:2018-05-08 17:26:01
【问题描述】:

我正在尝试在命令提示符下使用 SQLPLUS 从我的笔记本电脑连接到 Linux 服务器上的 Oracle 实例。

我安装了 oracle SQLDeveloper 并将其用于交互,但试图让 SQLPLUS 运行以便我可以设置一些批处理。

COMMAND 窗口中,我首先使用以下方法设置我的ORACLE_HOME 变量:

set ORACLE_HOME=C:\app\oracle\product\11.2.0\client_1

然后我尝试使用SQLPLUS 连接使用:

sqlplus -s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXX)))'

即使我指定了 PW,它也会以 Enter password: 提示进行响应,当我输入密码并按 Enter 时,我会收到 ERROR

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

所以,接下来,我使用以下方法设置我的 ORACLE_HOME 变量:(添加 \BIN

set ORACLE_HOME=C:\app\oracle\product\11.2.0\client_1\BIN

然后我尝试使用 SQLPLUS 连接:

-s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xxx)))'

这会产生 2 个错误,但至少不会提示输入密码:

初始化 SQL*Plus SP2-0667 时出现错误 6:找不到消息文件 sp1.msb SP2-0750:您可能需要将 ORACLE_HOME 设置为您的 Oracle 软件 目录

我尝试了ORACLE_HOME 的各种值,但要么它会提示PW 并且仍然不喜欢它,要么它不会提示并因其他错误而失败。我需要它来获取我提供的PW 值并连接,但似乎无法让它工作。我还确保我已读取和执行该目录以及client_1\sqlplus\mesg 目录中的sp1us.msb 文件的权限。

这是我第一次尝试在笔记本电脑上运行 SQLPLUS。我之前在 Linux 服务器上运行过它,并且在脚本中我在 shell 脚本文件本身中设置了:

export ORACLE_HOME=/oracle/app/product/11.2.0.4/dbhome_1/

它在那里工作。

不知道为什么我的笔记本电脑无法正常工作。接受建议。谢谢,

【问题讨论】:

  • 通常在 Windows 环境变量 ORACLE_HOME 上不是必需的。但是将C:\app\oracle\product\11.2.0\client_1\BIN 放入您的PATH

标签: windows oracle command-prompt sqlplus


【解决方案1】:

Windows 命令提示符对单引号的处理方式与 Linux 不同。在 Linux 上,这些都可以工作:

sqlplus -s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXX)))'
sqlplus -s "myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXX)))"
sqlplus -s myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXX)))

除非你的真实值中隐藏着任何特殊字符。

但在 Windows 中,第一个使用单引号将这些引号包含在传递给 SQL*Plus 的值中。这会导致它仅将整个内容视为用户名。

然后它会提示您输入密码;但由于它也没有看到连接字符串 - 因为它认为 @... 也是用户名的一部分 - 它无法到达您的数据库以尝试验证它,因此是 ORA-12560。

所以,要么去掉单引号,要么改用双引号。

【讨论】:

  • 谢谢!!!这行得通。我只是删除了单引号并按原样运行 - 它按预期连接和提取数据。感谢 Alex 的及时准确诊断!
猜你喜欢
  • 2017-11-03
  • 2017-05-25
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2015-12-09
  • 2018-01-04
  • 2014-02-08
相关资源
最近更新 更多