2014-04-30 189 views
0

我試圖在文件中執行PL-SQL statemtn並將結果記錄到日誌文件中。它工作,但DOS窗口掛起,我必須手動關閉它。從批處理cmd窗口執行SQL Plus SQL命令掛起

我會錯誤地結束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; 
/
+0

嗯。它看起來像是如果我將「退出」添加到它的工作的SQL文件的最後一行。 – ChadD

+0

您不能將程序的輸入放入批處理文件中。你可以嘗試'echo退出; | %SqlPlusExe%'... –

回答

0

對於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非常有趣!

+0

這些天沒人在做「DOS」腳本。沒有DOS了。 –