Altova MapForce 2024 Enterprise Edition

Exemple: Extraire des données depuis les colonnes de type XML IBM DB2

Accueil Préc Haut Suivant

Cet exemple montre comment extraire des données depuis des colonnes de base de données IBM DB2 de type XML et les écrire dans un fichier CSV cible. Il illustre également comment utiliser des instructions XQuery intégrées dans SQL afin d'extraire du contenu XML de manière conditionnelle. L'exemple requiert un accès à une base de données IBM DB2 pour laquelle vous avez la permission de créer et de remplir des tables.

 

Premièrement, il s'agit de préparer la base de données afin qu'elle contienne réellement des données XML. Pour ce faire, soit utiliser un outils d'administration de base de données spécifique à votre base de données, soit directement dans MapForce. Pour ce faire, suivre les étapes suivantes :

 

1.Créer un nouveau mappage et cliquer sur l'onglet DBQuery.

2.Cliquer sur Connexion rapide ( quickconnect ) et suivre les instructions de l'assistant pour créer une nouvelle connexion de base de données (voir aussi Database Connection Examples).

3.Coller le texte suivant dans l'éditeur SQL. Cette requête SQL crée une table de base de données appelée ARTICLES et la remplit avec des données.

-- Create the table
CREATE TABLE
   ARTICLES (
       id INTEGER NOT NULL,
       article XML ) ;
-- Populate the table
INSERT INTO ARTICLES VALUES
  (1, '<Article>
     <Number>1</Number>
     <Name>T-Shirt</Name>
     <SinglePrice>25</SinglePrice>
  </Article>'),
(2, '<Article>
     <Number>2</Number>
     <Name>Socks</Name>
     <SinglePrice>230</SinglePrice>
  </Article>'),
(3, '<Article>
     <Number>3</Number>
     <Name>Pants</Name>
     <SinglePrice>34</SinglePrice>
  </Article>'),
(4, '<Article>
     <Number>4</Number>
     <Name>Jacket</Name>
     <SinglePrice>5750</SinglePrice>
  </Article>');

4.Cliquer sur la touche Exécuter ( ic_execute-sql ). Le résultat d'exécution de la requête est affiché dans la fenêtre Résultats de requête. Si la requête est exécutée correctement, quatre lignes sont ajoutées à la table nouvellement créée.

 

Ensuite, nous allons créer un mappage qui extrait des données XML depuis la table ARTICLES créées ci-dessus de manière conditionnelle. L'objectif est d'extraire depuis la colonne ARTICLES uniquement les articles dont le prix est supérieur à 100.

 

Étape 1: Ajouter la base de données

1.Cliquer sur l'onglet Mappage pour retourner au volet de mappage.

2.Dans le menu Insérer, cliquer sur base de données, et suivre les instructions de l'assistant pour se connecter à la base de données.

3.Lorsque vous êtes invité à choisir les objets de la base de données, choisir la table ARTICLES créée précédemment.

mf_db2_xmltype1

 

Étape 2: Attribuer le schéma au champ de type XML

1.Cliquer avec la touche de droite sur l'item ARTICLE du composant, et choisir Attribuer Schéma XML au champ depuis le menu contextuel.

mf_db2_xmltype2

2.Choisir Fichier, et chercher le schéma suivant : <Documents>\Altova\MapForce2024\MapForceExamples\Tutorial\DB2xsd.xsd.

 

Étape 3: Ajouter le composant WHERE/ORDER SQL

1.Dans le menu Insérer, cliquer sur WHERE/ORDER SQL.

2.Connecter la colonne ARTICLE de type XML à l'entrée du WHERE/ORDER SQL.

mf_db2_xmltype4

3.Dans le dialogue Propriétés WHERE/ORDER SQL, saisie le texte suivant :

XMLEXISTS('$a/Article[SinglePrice>100]' PASSING ARTICLE as "a")

mf_db2_xmltype5

Le texte ci-dessus représente la partie "WHERE" de la requête SQL. Lors de l'exécution du mappage, cette partie sera combinées avec la partie "SELECT" affichée dans le dialogue. Cette instruction utilise la fonction XMLEXISTS et la syntaxe spécifiques aux bases de données IBM DB2.

 

Étape 4: Ajouter le fichier CSV cible

1.Dans le menu Insérer, cliquer sur Fichier texte.

2.Sur invitation, choisir Utiliser traitement simple pour CSV standard... , et cliquer sur Continuer.

3.Cliquer sur Apposer champ trois fois pour ajouter trois champs qui stockeront le numéro, le nom et le prix de l'article. Ne pas toucher aux autres paramètres.

4.Tirer les connexions de mappage comme indiqué ci-dessous.

mf_db2_xmltype6

Vous pouvez maintenant consulter un aperçu du mappage en cliquant sur l'onglet Sortie. Comme prévu, seuls des articles dont le prix est supérieur à 100 sont affichés dans la sortie.

mf_db2_xmltype7

© 2018-2024 Altova GmbH