SQLPLUS 无法在 windows 命令提示符下连接
SQLPLUS Unable to connect in windows command prompt
我正在尝试在命令提示符下使用 SQLPLUS 从笔记本电脑连接到 Linux 服务器上的 oracle 实例。
我安装了 oracle SQLDeveloper 并将其用于交互,但我正在尝试获取 SQLPLUS 运行ning 以便我可以设置一些批处理。
在 COMMAND
window 中,我首先设置我的 ORACLE_HOME
变量使用:
set ORACLE_HOME=C:\app\oracle\product.2.0\client_1
然后我尝试使用 SQLPLUS
连接使用:
sqlplus -s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXX)))'
即使我指定了 PW,它也会以输入密码响应:提示,当我输入它并按回车键时,我收到 ERROR
ORA-12560: TNS:protocol adapter error
所以,接下来,我使用以下方法设置 ORACLE_HOME
变量:(添加 \BIN
)
set ORACLE_HOME=C:\app\oracle\product.2.0\client_1\BIN
然后我尝试使用 SQLPLUS 进行连接:
-s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xxx)))'
这会产生 2 个错误,但至少不会提示输入密码:
Error 6 initializing SQL*Plus SP2-0667: Message file sp1.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software
directory
我已经为 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 命令提示符对待单引号的方式与 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.
因此,要么删除单引号,要么改用双引号。
我正在尝试在命令提示符下使用 SQLPLUS 从笔记本电脑连接到 Linux 服务器上的 oracle 实例。
我安装了 oracle SQLDeveloper 并将其用于交互,但我正在尝试获取 SQLPLUS 运行ning 以便我可以设置一些批处理。
在 COMMAND
window 中,我首先设置我的 ORACLE_HOME
变量使用:
set ORACLE_HOME=C:\app\oracle\product.2.0\client_1
然后我尝试使用 SQLPLUS
连接使用:
sqlplus -s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXX)))'
即使我指定了 PW,它也会以输入密码响应:提示,当我输入它并按回车键时,我收到 ERROR
ORA-12560: TNS:protocol adapter error
所以,接下来,我使用以下方法设置 ORACLE_HOME
变量:(添加 \BIN
)
set ORACLE_HOME=C:\app\oracle\product.2.0\client_1\BIN
然后我尝试使用 SQLPLUS 进行连接:
-s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xxx)))'
这会产生 2 个错误,但至少不会提示输入密码:
Error 6 initializing SQL*Plus SP2-0667: Message file sp1.msb not found SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
我已经为 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 命令提示符对待单引号的方式与 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.
因此,要么删除单引号,要么改用双引号。