2014-04-30 2 views
0

Я пытаюсь выполнить statemtn PL-SQL в файле и регистрировать результаты в файле журнала. Он работает, но окно DOS зависает, и мне нужно вручную закрыть его.Выполнение SQL Plus SQL-команды из окна пакетного-cmd зависает

Я заканчиваю сессию 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

Мда. Похоже, если я добавлю «quit» в последнюю строку файла sql, он работает. – ChadD

+0

Вы не можете помещать ввод для программы в такой пакетный файл. Вы можете попробовать «echo quit; | % SqlPlusExe% '... –

ответ

0

Для Windows-сценариев я рекомендую вам установить переменную окружения "LOCAL" ("TWO_TASK" на Linux). В переменной указывается строка подключения.

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 больше нет. –

Смежные вопросы