Задание значений для переменных Db2
У Optim High Performance Unload есть возможность для данного выполнения динамически задавать значения переменных
Db2 и затем использовать эти значения во время обработки различных задач Optim High Performance Unload.
Для этого надо добавить параметр db2variables в файл конфигурации db2hpu.cfg, связанный с абсолютным именем файла. Его путь должен соответствовать пути существующего файла. Его содержимое должно быть списком переменных Db2 с присваиваемыми им значениями. Комментарии в этом файле можно задавать с использованием символа « # ».
Первый шаг - добавить в файл конфигурации db2hpu.cfg параметр db2variables:
db2variables=/home/i1111/mydb2vars.txtЗатем надо создать файл, определенный в параметре db2variables, и задать в нем столько записей, сколько переменных Db2 надо задать.
Когда в этом файле задается запись для переменной Db2:
- обязательно задать значение для нее
- переменная должная быть допустимой переменной Db2
- заданное значение должно согласовываться с типом данных указанной переменной Db2
Вот пример такой спецификации файла. В этом примере задаются три переменных Db2. Это переменная ‘variable_int’ типа INTEGER, переменная ‘variable_varchar’ типа VARCHAR и переменная ‘variable_date’ типа DATE. Их соответствующие значения по умолчанию:
[i1058@lat111 ~]$ db2 "SELECT variable_int, variable_varchar, variable_date FROM TABLE1"
1 2 3
----------- -------------------- ----------
1 default_value 01/01/2010
Выбрано записей: 1.Файл конфигурации Optim High Performance Unload со спецификацией параметра db2variables:
[i1058@lat111 cfg]$ cat db2hpu.cfg
# конфигурация по умолчанию HPU
bufsize=2097152
db2dbdft=
db2instance=
doubledelim=binary
netservice=db2hpudm61
db2variables=/home/i1111/mydb2vars.txtФайл, содержащий задание значений переменных Db2:
[i1111@lat111 ~]$ cat /home/i1111/mydb2vars.txt
variable_int=10
variable_varchar='new_value'
variable_date=CURRENT DATEОтчет о выполнении задачи на основе оператора SQL, который обращается к этим переменным Db2:
[i1058@lat111 ~]$ db2hpu -i i1058 -f sysin
INZM031I Optim High Performance Unload for Db2 06.01.00.002.01(180702)
64-битная 07/02/2018 (Linux lat111 x86_64)
INZI473I Ограничения памяти: 'неограничено' для виртуальной памяти и 'неограничено' для сегмента данных
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+
000001 GLOBAL CONNECT TO SAMPLE;
000002 UNLOAD TABLESPACE
000003 SELECT variable_int, variable_varchar, variable_date FROM TABLE1;
000004 OUTFILE("outfile")
000005 FORMAT DEL;
INZU462I Начало шага управления HPU : 07/02/2018 11:38:56.931.
INZU463I Окончание шага управления HPU: 07/02/2018 11:38:57.147.
INZU464I Начало шага выполнения HPU : 07/02/2018 11:38:57.223.
INZU410I Утилита HPU выгрузила строк: 1, на хост lat111, для таблицы I1058.TABLE1 в файл outfile.
INZU465I Окончание шага выполнения HPU: 07/02/2018 11:38:57.248.
INZI441I Утилита HPU успешно завершена: Реальное время -> 0m0.317090s
Пользовательское время -> 0m0.251783s : родительский элемент -> 0m0.251783s, дочерний элемент -> 0m0.000000s
Системное время -> 0m0.046225s : Родительский процесс -> 0m0.046225s, Дочерние процессы -> 0m0.000000s Файл вывода, содержащий заданные для переменных Db2 значения:
[i1111@lat111 ~]$ cat outfile
10,"new_value",20180702