Accueil du site > Les articles > Exporter le contenu d’un fichier physique sous forme de requête (...)
Version à imprimer Enregistrer au format PDF

Exporter le contenu d’un fichier physique sous forme de requête insert

jeudi 17 juillet 2008, par David Malle Visites  1862

Cet outil utilise le SQL dynamique pour exporter le contenu d’un fichier physique sous forme de requêtes insert stockées dans un script.


Instructions

  • Le script d’installation est proposé en document joint au format ZIP. Extraire le fichier suffixé par XML et le sauvegarder dans un répertoire de votre IFS.
  • Utilisez l’outil d’installation XML2SRC (voir Outil d’installation des programmes mis en ligne sur XDOCS400, pour installer l’outil ou consulter le mode opératoire d’une installation).

Limitations

  • Votre AS400 doit être en V5R4.

Notez bien

  • Le site XDOCS400.COM fournit des programmes à titre d’exemples et n’assure pas de hotline ou de garantie dessus.
  • Toutefois, si vous avez des soucis pour les installer, ou les utiliser, contactez l’auteur de l’article via le formulaire ad’hoc du site xdocs400 pour une aide ponctuelle.

Fonctionnement de l’export sous forme de requêtes insert

  • DB2_EXPORT exporte le contenu d’un fichier physique sous forme de requête insert, dans un fichier script.
  • Possibilité d’inclure une clause where ou une jointure pour restreindre les enregistrements à exporter .
  • Possibilité de générer les requêtes delete correspondantes à la clause where. Dans le cas d’une jointure, cette option est inopérante.
  • Le script est généré avec une partie commentaire au début du script.

Pourquoi cet outil

  • Il s’agit d’un besoin très personnel au départ, pour stocker dans des scripts certains jeux de tests ou paramétrage car c’est une méthode que j’ai utilisé dans d’autres environnements et que je trouve très pratique.
  • Cela me permet très facilement de versionner des évolutions de paramétrages par exemple.
  • Les scripts peuvent êtres mis en téléchargement sur un intranet.
  • Cela me permet également de livrer des évolutions de paramétrage de manière très facile, puisqu’il suffit d’exécuter le script sur n’importe quel environnement, du moment que les fichiers concordent.
  • Cela permet de générer des scripts exécutables pour d’autres gestionnaire de bases de données

Utilisation

exécution en ligne de commande

DB2_EXPORT FICHIER(API01OBJ)                    
          BIB(MYBIB)                          
          WHERE('where seqreq <= 3')          
          DOCUMENT('/home/myrep/API01OBJ_01.sql')
          GENDLT('O')                          

Résultat

--
-- Script généré le    : 2008-07-17
-- Par le traitement   : DME/SDMEA1/156161/71708
-- Fichier mis à jour  : API01OBJ
-- Commentaires du dev :
--
delete from API01OBJ A where seqreq <= 3;
insert into API01OBJ values (1 , 1 , 'QMODSRC' , 'BDCADELIA' , '*FILE' , 'PF' , 'Decription des Modèles ADELIA' , '' , 'QPGMR' , '1993-09-02-13.42.58' , '2007-12-05-19.20.39' );
insert into API01OBJ values (1 , 1 , 'QMODSRC' , 'BIBJKH' , '*FILE' , 'PF' , 'Decription des Modèles ADELIA' , '' , 'QPGMR' , '1994-07-05-11.51.59' , '2007-12-05-19.23.13' );
insert into API01OBJ values (1 , 1 , 'QMODSRC' , 'BIBMCI' , '*FILE' , 'PF' , 'Decription des Modèles ADELIA' , '' , 'QPGMR' , '2000-12-12-15.30.40' , '2007-12-05-19.24.13' );
insert into API01OBJ values (1 , 2 , 'QRPGSRC' , 'PPSYSSAV' , '*FILE' , 'PF' , '' , '' , 'QPGMR' , '2007-01-30-16.15.51' , '2007-12-06-00.48.38' );
insert into API01OBJ values (1 , 2 , 'QRPGSRC' , 'PRESRC0' , '*FILE' , 'PF' , 'Gestion versions : Fichier sources' , '' , 'QPGMR' , '2007-04-16-16.30.25' , '2007-12-06-00.56.54' );
insert into API01OBJ values (1 , 2 , 'QRPGSRC' , 'PROBUS_400' , '*FILE' , 'PF' , '' , '' , 'QPGMR' , '2006-05-16-20.29.11' , '2007-12-06-00.57.13' );
insert into API01OBJ values (1 , 2 , 'QRPGSRC' , 'QGPL' , '*FILE' , 'PF' , 'FILE FOR RPG SOURCE' , '' , 'QPGMR' , '1999-04-19-18.48.41' , '2007-12-05-17.21.41' );
insert into API01OBJ values (1 , 2 , 'QRPGSRC' , 'QSYSINC' , '*FILE' , 'PF' , 'DATA BASE FILE FOR RPG INCLUDES' , '' , 'QSYS' , '2005-08-24-11.08.29' , '2007-11-21-15.53.49' );
insert into API01OBJ values (1 , 2 , 'QRPGSRC' , 'REFSRC' , '*FILE' , 'PF' , 'ADELIA : RPG' , '' , 'QPGMR' , '1999-07-15-09.52.14' , '2007-12-06-01.10.03' );
insert into API01OBJ values (1 , 3 , 'QRPGLESRC' , 'BIBDME02' , '*FILE' , 'PF' , 'Source RPGLE 112 lng' , '' , 'QPGMR' , '2006-10-05-16.38.06' , '2007-12-05-19.22.35' );
insert into API01OBJ values (1 , 3 , 'QRPGLESRC' , 'BIBDME03' , '*FILE' , 'PF' , 'Source RPGLE 112 lng' , '' , 'QPGMR' , '2006-11-16-17.19.02' , '2007-12-13-11.38.50' );
insert into API01OBJ values (1 , 3 , 'QRPGLESRC' , 'BIBDME04' , '*FILE' , 'PF' , 'Source RPGLE 112 lng' , '' , 'QPGMR' , '2007-01-19-15.19.17' , '2007-12-05-19.22.40' );

Exécution du script sur DB2

La commande suivante permet d’exécuter le script stocké sur l’IFS et d’appliquer la requête sur une bibliothèque précise mybib :

QSH CMD('db2 -f /home/myrep/API01OBJ_01.sql mybib')

Voir l’article Outil pour exécuter un script SQL stocké sur l’IFS sur une bibliothèque précise qui propose un outil d’exécution de script.

Documents joints