Definición de valores en las variables de Db2
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.txtA 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.txtArchivo 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 DATEInforme 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