Невозможно запустить два. sql в одном файле .bat - PullRequest
1 голос
/ 24 января 2020

У меня запланированное задание с файлом .bat, который загружает некоторые файлы с веб-сервера каждый день к утру, затем обрабатывает данные и ОБНОВЛЯЕТ базу данных. Затем он запускает другой файл .bat для выбора данных и вставки в файл .xls.

Второй файл .bat выглядит так:

set a=%date:/=-%
del /q F:\file_path\file1_%a%.xls
del /q F:\file_path\file2_%a%.xls
echo %time%_%date%

cd /D D:\oracle\product\10.2.0\db_1\BIN
sqlplus usrname/psswd@ORCL @F:\select_path\select1.sql
timeout /t 30 /nobreak > nul
ren F:\file_path\file1.xls file1_%a%.xls

sqlplus usrname/psswd@ORCL @F:\select_path\select2.sql
timeout /t 30 /nobreak > nul
ren F:\file_path\file2.xls file2_%a%.xls


cd /D F:\KMB-SP\TI\Scripts\script_select

::Command to send file1 and file2 via e-mail.

Но когда я прихожу в офис и проверьте прогресс, только первый .xls сделан. Поэтому я должен запустить второй .bat вручную, и он отлично работает.

Что может быть причиной этого?

Примечания:

  1. Я положил время ожидания между двумя SELECT, потому что в прошлом код останавливался после INSERT и не вызывал второй .bat. Мой коллега сказал, что это может быть исключением исполнения. Задание времени ожидания дало бы время для правильного завершения INSERT.
  2. Раньше он выполнял оба SELECT, а затем переименовывал оба файла. Делая так, иногда это работало, иногда нет, затем я попытался изменить порядок: select1, rename1, select2, rename2.
  3. Поскольку мы загружаем файлы каждый день, мы объединяем данные на один файл называется DT-дата. Первый код выглядит так:
rem The data is downloaded and the files are organized in their files
if exist F:\path\DT-date (
    Data_consolidation.exe
    timeout /t 300 /nobreak > nul
    F:\path\second_bat.bat
) else (exit)
Как сказал @William Robertson, я попытался echo exit сразу после первого SELECT, но, опять же, он извлек только первый файл, а не второй.

1 Ответ

0 голосов
/ 04 февраля 2020

Как @WilliamRobertson предложил написать echo exit | до того, как команды sqlplus решат проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...