Definición de valores en las variables de Db2

Optim™ High Performance Unload tiene la capacidad, para una ejecución dada, de establecer dinámicamente los valores de las variables Db2®, y luego utilizar estos valores durante el procesamiento de varias Optim High Performance Unload tareas.

Para ello, el usuario debe añadir el parámetro db2variables en el archivo de configuración db2hpu.cfg, asociado a un nombre de archivo absoluto. Esta vía de acceso debe corresponder a un archivo existente. Su contenido debe ser una lista de nombres de variables de Db2 con sus valores asociados. Se pueden especificar comentarios en este archivo mediante el símbolo «#».

El primer paso consiste en añadir al archivo de configuración db2hpu.cfg el parámetro db2variables de la forma siguiente:
db2variables=/home/i1111/mydb2vars.txt

A continuación, se debe crear el archivo especificado en el parámetro db2variables y rellenarlo con tantas entradas como variables de Db2 se deban establecer.

Cuando se crea una entrada para una variable de Db2 en este archivo:
  • es obligatorio especificar un valor para ella
  • debe hacer referencia a una variable válida de Db2
  • el valor especificado debe ser coherente con el tipo de datos de la variable Db2 en cuestión
A continuación se muestra un ejemplo de este tipo de especificación de archivo. Para este ejemplo, están implicadas tres variables de Db2 . Se denominan, respectivamente, ‘variable_int’, del tipo de datos INTEGER; ‘variable_varchar’, del tipo de datos VARCHAR, y ‘variable_date’, del tipo de datos DATE. Sus respectivos valores predeterminados son los siguientes:
[i1058@lat111 ~]$ db2 "SELECT variable_int, variable_varchar, variable_date FROM TABLE1"       

1           2                    3
----------- -------------------- ---------- 
          1 default_value        01/01/2010 

 1 record(s) selected.
Optim High Performance Unload archivo de configuración, con la especificación del parámetro db2variables :
[i1058@lat111 cfg]$ cat db2hpu.cfg
# HPU default configuration 
bufsize=2097152 
db2dbdft= 
db2instance= 
doubledelim=binary 
netservice=db2hpudm61
db2variables=/home/i1111/mydb2vars.txt
Archivo que contiene el valor de variables de Db2 :
[i1111@lat111 ~]$ cat /home/i1111/mydb2vars.txt
variable_int=10 
variable_varchar='new_value'
variable_date=CURRENT DATE
Informe de ejecución de una tarea basada en una sentencia SQL que hace referencia a estas variables de Db2 :
[i1058@lat111 ~]$ db2hpu -i i1058 -f sysin
INZM031I Optim High Performance Unload for Db2 06.01.00.002.01(180702) 
         64 bits 07/02/2018 (Linux lat111 x86_64) 
INZI473I Memory limitations: 'unlimited' for virtual memory and 'unlimited' for data segment 
      ----+----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 control step start: 07/02/2018 11:38:56.931. 
INZU463I HPU control step end  : 07/02/2018 11:38:57.147. 
INZU464I HPU run step start    : 07/02/2018 11:38:57.223. 
INZU410I HPU utility has unloaded 1 rows on lat111 host for I1058.TABLE1 in outfile. 
INZU465I HPU run step end      : 07/02/2018 11:38:57.248. 
INZI441I HPU successfully ended: Real time -> 0m0.317090s 
User time -> 0m0.251783s : Parent -> 0m0.251783s, Children -> 0m0.000000s 
Syst time -> 0m0.046225s : Parent -> 0m0.046225s, Children -> 0m0.000000s 
Archivo de salida que contiene los valores establecidos para las variables de Db2 :
[i1111@lat111 ~]$ cat outfile 
10,"new_value",20180702