【问题标题】:Execute SQL Plus SQL command from batch-cmd window hangs从批处理 cmd 窗口执行 SQL Plus SQL 命令挂起
【发布时间】:2014-04-30 01:17:58
【问题描述】:

我正在尝试在文件中执行 PL-SQL statemtn 并将结果记录到日志文件中。它可以工作,但是 DOS 窗口挂起,我必须手动关闭它。

我是否错误地结束了 SqlPlus 会话?

rem SET TERMOUT OFF; 
SET SqlPlusExe=C:\Oracle\product\11203_32bit\CLIENT_1\bin\sqlplus.exe
SET MyUser=MyID
SET MyPassword=MyPwd
SET Host=RXODSDEV.CIGNA.COM
SET SqlFile=C:\Users\MyLanId\Desktop\SQLPlus\test.sql
SET LogFile=C:\Users\MyLanId\Desktop\SQLPlus\test.log

%SqlPlusExe% %MyUser%/%MyPassword%@%Host% @%SqlFile% >> %LogFile% 
quit;
/

【问题讨论】:

  • 嗯。看起来如果我将“退出”添加到 sql 文件的最后一行就可以了。
  • 您不能将程序的输入放入这样的批处理文件中。你可以试试echo quit; | %SqlPlusExe%...

标签: windows oracle batch-file sqlplus


【解决方案1】:

对于 Windows 脚本,我建议您设置环境变量“LOCAL”(Linux 上的“TWO_TASK”)。该变量将指定您的连接字符串。

set LOCAL=RXODSDEV.CIGNA.COM

REM Create the file to run
@(
   echo connect %MyUser%/%MyPassword% 
   echo @%SqlFile% 
   echo exit^;
) > %TEMP%\run.sql
sqlplus /nolog @%TEMP%\run.sql >> out.log 

但是现在谁在编写 DOS 脚本? Powershell 更有趣!

【讨论】:

  • 这些天没有人在做“DOS”脚本。不再有 DOS。
【解决方案2】:
猜你喜欢
  • 2023-01-25
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多