Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 инсталлятор скриптов  [new]
cumba
Member

Откуда:
Сообщений: 64
Всем привет!

Вопрос собственно в следующем...

Как в DB2 выполнить скрипты в файле *.bat ?
файл.bat:
db2 -td@ -vf script.sql
....

не выполняется пишет : DB21061E Среда командной строки не инициализирована.
Я так понимаю он пытается выполнить команду в виндовой командной сторке а не в db2clp. Тогда как его заставить выполнять команды через db2clp ?


DB2 9,5
9 дек 11, 22:47    [11740205]     Ответить | Цитировать Сообщить модератору
 Re: инсталлятор скриптов  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2550
другой-bat-файл:

db2cmd ваш-бат-файл.bat
(см. также опции db2cmd)
9 дек 11, 23:06    [11740274]     Ответить | Цитировать Сообщить модератору
 Re: инсталлятор скриптов  [new]
cumba
Member

Откуда:
Сообщений: 64
Спасибо, заработало. И возник еще вопрос. Возможно ли использование что то вроде переменных подстановок?

типа :

define var = 'schema_name'
create schema &&schema_name ...


или определить в батнике

set schema_name = test
db2cmd /c /w /i script.sql %schema_name%


script.sql

create schema %1 ...
12 дек 11, 11:52    [11747907]     Ответить | Цитировать Сообщить модератору
 Re: инсталлятор скриптов  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1091
Нет, нельзя.

Можн из своего .bat:
db2 create schema %schema_name%

Ну или из языков каких (rexx'а, к примеру).

Вариант - template, по которому предварительно проходится другой скрипт, осуществляя подстановку.
12 дек 11, 13:22    [11748860]     Ответить | Цитировать Сообщить модератору
 Re: инсталлятор скриптов  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
cumba
...Возможно ли использование что то вроде переменных подстановок?
Можно поставить себе какой-нибудь порт утилиты sed и с помощью своего командного файла:
+ db2_my.bat
@echo off

SETLOCAL EnableDelayedExpansion
setlocal

if .%1.==.. goto usage
if .%2.==.. set parmfile=parms.txt
if NOT EXIST %1 goto noscript
if NOT EXIST %parmfile% goto noparms

set comm=
for /F %%n in (%parmfile%) do set comm=!comm! -e "s/%%n/g"
echo %comm%

sed %comm% %1 | db2 +p -t -v -z %1.log

endlocal
goto :eof

:usage
@echo usage: %~n0 db2_script_file [ parameter_file ]
goto :eof

:noscript
@echo error: no db2_script_file
goto :eof

:noparms
@echo error: no parameter_file
goto :eof
и текстового файла параметров
+ parms.txt
&&schema_name/'schema'
...
&&parmN/some_value
сделать:
db2_my  my_script_with_parameters.sql  parms.txt
12 дек 11, 13:59    [11749390]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить