【发布时间】:2018-08-02 10:21:03
【问题描述】:
我在 Win 7 的桌面上安装了一个 Oracle 12c 实例。 我正在尝试从 COMMAND PROMPT 启动一个简单的 SELECT 语句,我希望收到结果。
我使用的代码是:
@ECHO OFF
ECHO *****************************
ECHO Database Login
ECHO *****************************
@echo select 44 from dual | sqlplus username/password@SID
pause
当我执行这一行时,cmd被打开并停留在这个屏幕上
因为它试图连接到 Oracle。
过了一会儿,它显示了下面的错误。
我正在尝试使用相同的凭据从 sqlplus 进行连接,并且一切正常。 我正在尝试从命令提示符启动 sqlplus,提供用户名和密码,它工作正常。
当我从 .bat 文件启动代码时出现问题。
【问题讨论】:
-
听起来你的 bat 文件没有继承整个环境,或者正在设置一些覆盖环境的东西,也许。顺便说一句,如果您将其更改为
sqlplus -l,那么它将在第一个错误后退出,并且不会尝试使用select ...文本作为登录凭据,这就是导致第二个SP2 错误的原因。 (稍后您可能还想添加-s来抑制横幅,但仅在其余部分正常工作时。) -
另外,您在谈到手动运行 SQL*Plus 时只提到了用户名和密码;您是否使用完全相同的命令和相同的连接字符串,尤其是(相同的)
@SID部分? -
是的,我使用的是相同的连接字符串
-
那你好像是捡了个不一样的,或者找不到.bat,
tnsnames.ora文件。SID是它在该文件中查找的 TNS 别名。也许您有多个文件,并且根据您尝试连接的位置(例如当前工作目录中的副本)选择不同的版本? -
使用剪切和粘贴将控制台窗口的内容复制到您的问题中。不要使用图片。
标签: windows oracle cmd sqlplus