Attribution de valeurs aux variables Db2

Optim™ High Performance Unload a la capacité, pour une exécution donnée, de fixer dynamiquement les valeurs des variables Db2®, puis d'utiliser ces valeurs au cours du traitement de diverses tâches Optim High Performance Unload tâches.

Pour cela, il est nécessaire d'ajouter le paramètre db2variables dans le fichier de configuration db2hpu.cfg, associé à un nom de fichier absolu. Ce chemin doit correspondre à un fichier existant. Son contenu doit être une liste de noms de variables Db2 avec leurs valeurs associées. Il est possible de spécifier des commentaires dans ce fichier en utilisant le symbole « # ».

La première étape consiste à ajouter dans le fichier de configuration db2hpu.cfg le paramètre db2variables comme suit:
db2variables=/home/i1111/mydb2vars.txt

Ensuite, le fichier spécifié au paramètre db2variables doit être créé et rempli avec autant d'entrées qu'il y a de variables Db2 à définir.

Lorsqu'une entrée est créée pour une variable Db2 dans ce fichier:
  • il est obligatoire de spécifier une valeur
  • il doit faire référence à une variable Db2 valide
  • la valeur spécifiée doit être cohérente avec le type de données de la variable Db2 concernée
Vous trouverez ci-dessous un exemple de spécification de fichier. Pour cet exemple, trois variables Db2 sont impliquées. Elles sont respectivement appelées ‘variable_int’ de type de données INTEGER, ‘variable_varchar’ de type de données VARCHAR et ‘variable_date’ de type de données DATE. Leurs valeurs par défaut respectives sont les suivantes :
[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 Unloaddb2variables :
[i1058@lat111 cfg]$ cat db2hpu.cfg
# HPU default configuration 
bufsize=2097152 
db2dbdft= 
db2instance= 
doubledelim=binary 
netservice=db2hpudm61
db2variables=/home/i1111/mydb2vars.txt
Fichier contenant le paramètre de variables Db2 :
[i1111@lat111 ~]$ cat /home/i1111/mydb2vars.txt
variable_int=10 
variable_varchar='new_value'
variable_date=CURRENT DATE
Rapport d'exécution d'une tâche basé sur une instruction SQL faisant référence aux variables Db2 suivantes:
[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 
Fichier de sortie contenant les valeurs définies pour les variables Db2 :
[i1111@lat111 ~]$ cat outfile 
10,"new_value",20180702