Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 3
1

Запуск SQL запросов с разными параметрами через консоль DB2

26.02.2017, 13:38. Показов 4159. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Сильными знаниями по автоматизации не обладаю. Простые батники это ладно, но тут встала интересная (для меня) задача.
Прислали мне на выгрузку из базы DB2 кучу запросов, в основном они шаблонные за исключением одного параметра, номера района к примеру от 1 до 30 и просят разбросать выгрузку в разные файлы для каждого района. Т.Е. нужно запустить один и тот же запрос 30 раз изменив в нем всего 1 цифру в районе и 1 туже самую цифру для имени файла.
Сделать запуск консоли DB2 и запуск в нескольких файлов (для примера) типа query.sql query1.sql на как в них автоматизировать и зациклить изменение параметра так и не понял.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2017, 13:38
Ответы с готовыми решениями:

Запуск 3 ярлыков BlueStacks с разными параметрами
Нужно реализовать запуск 3 окон BlueStacks с определенными параметрами. Допустим в папке...

Youtube API: многократный запуск с разными параметрами.
// Youtube API script var channelName = 'Geb431'; var vidResults = 4; ...

Запуск через командную строку с параметрами
Помогите плиз!!! void main(int argc, char *argv) { int k,N; clrscr(); LIST *lst; FILE...

Запуск WinRar с параметрами через CreateProcess
Здравствуйте. Подскажите пожалуйста как запустить WinRar с параметрами через CreateProcess. Через...

6
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
26.02.2017, 13:48 2
Лучший ответ Сообщение было отмечено HekpacuBbiu как решение

Решение

так может
Windows Batch file
1
2
3
4
5
6
7
@echo off
setlocal
 set n=0
 :#
  if not %n%==30 set/a n+=1& query%n%.sq& goto #
endlocal
pause
или
Windows Batch file
1
2
3
@echo off
for /l %%a in (0 1 30) do query%%a.sq
pause
0
6243 / 2118 / 334
Регистрация: 10.12.2013
Сообщений: 7,302
26.02.2017, 14:24 3
Цитата Сообщение от HekpacuBbiu Посмотреть сообщение
как автоматизировать ?
не связываясь с DB2 CLP,
универсальным инструментом являются языки программирования с реализованным интерфейсом
доступа к базам данных:
java / jdbc
perl / dbi
Python / Database API

etc

минусом здесь является необходимость установки языка под Windows,
но это процесс быстрый и несложный.


PS: ни сам интерпретатор cmd, ни какие-либо консольные утилиты Windows, болтающиеся в system32,
подобными возможностями не обладают.

Добавлено через 13 минут
что касается powershell,
то самым безболезненным подходом будет установить
IBM Data Server Provider for .NET, если найти, где его взять.

Добавлено через 8 минут
если же проблема только в том, что
Цитата Сообщение от HekpacuBbiu Посмотреть сообщение
нужно запустить один и тот же запрос 30 раз изменив в нем всего 1 цифру в районе и 1 туже самую цифру для имени файла.
то тут придёт на помощь программа 'текстовый редактор' и copy/paste.
0
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 3
26.02.2017, 14:47  [ТС] 4
Нужно изменить не имя файла, а параметр внутри него и так последовательно 30 раз.

Вот пример батника, который я нвбросал
Кликните здесь для просмотра всего текста
set aliasCS=%1
set schemaCS=%2
set loginCS=%3
set pasCS=%4
set log=%5

del /q %log%

db2 -l%log% connect to %aliasCS% user %loginCS% using %pasCS%

echo ---------------------------------
echo - задание схемы для БД CSERVICE -
echo ---------------------------------

db2 -l%log% SET CURRENT SCHEMA = %schemaCS%

echo ----------------------------------------
echo - создание основных процедур и функций -
echo ----------------------------------------
db2 -l%log% -td@ -f "%~dp0\dropProcFunc.sql"
db2 -l%log% -td@ -f "%~dp0\createProcFunc.sql"
echo -----------------------------------------
db2 -l%log% connect reset


И вот к примеру, если вставить не файл а просто текст запроса в батник
Кликните здесь для просмотра всего текста
set aliasCS=%1
set schemaCS=%2
set loginCS=%3
set pasCS=%4
set log=%5

del /q %log%

db2 -l%log% connect to %aliasCS% user %loginCS% using %pasCS%

REM echo ---------------------------------
REM echo - задание схемы для БД WF -
REM echo ---------------------------------

REM db2 -l%log% SET CURRENT SCHEMA = %schemaCS%

echo ---------------------------------
echo - Производится экспорт запроса! -
echo ---------------------------------

db2 -l%log% "export to %~dp0\select_export.csv of del modified by coldel; select distinct бла бла бла бла =)))))
where ra 1 and re=91

echo -----------------------------------------
db2 -l%log% connect reset
exit


В итоге результат запроса 1 выгруженный файл и далее надо поменять в файле циферку и запускать заного, что ручками делать не хотелось бы в связи с большим количеством.

Добавлено через 8 минут
да, и есть еще батник, который запускает консоль и передает параметры в этот =))
0
6243 / 2118 / 334
Регистрация: 10.12.2013
Сообщений: 7,302
26.02.2017, 15:02 5
Цитата Сообщение от HekpacuBbiu Посмотреть сообщение
запускать заного, что ручками делать не хотелось
по-русски правильно писать за ногу
0
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 3
26.02.2017, 15:05  [ТС] 6
не совсем тот совет, которого я ждал =)
0
6243 / 2118 / 334
Регистрация: 10.12.2013
Сообщений: 7,302
26.02.2017, 15:16 7
я уже писал, методами copy / paste сделать:
либо
а) 30 однотипных bat-файлов для каждого района
либо
б) один bat-файл с параметрами для каждого из 30 районов

Добавлено через 2 минуты
пункт А нмв предпочтительнее.
0
26.02.2017, 15:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2017, 15:16
Помогаю со студенческими работами здесь

Запуск формы через командную строку с параметрами
Знаю, что в консоли можно получить данные из командной строки int main(int argc, char *argv) { ...

Запуск через консоль
Объясните пожалуйста как запустить программу через консоль? Для NetBeans IDE 7.2.1

Хранение текста запросов в таблице. Как реализовать выполнение запросов с параметрами и Select?
День добрый! По тексту кода часто встречаются одни и те же фиксированные запросы, бывает длинные....

Запуск программы через C++ и консоль
Доброго времени суток. Столкнулся с проблемой, что если запускать программу через функцию system, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru