Beispiel: Extrahieren von Daten aus IBM DB2-Spalten vom Typ XML
In diesem Beispiel wird gezeigt, wie Sie Daten aus IBM DB2-Datenbankspalten vom Typ XML extrahieren und in eine CSV-Zieldatei schreiben. Außerdem wird hier gezeigt, wie Sie XML-Inhalte mit Hilfe von in SQL eingebetteten XQuery-Anweisungen auf Basis von Bedingungen abrufen. Sie benötigen für dieses Beispiel Zugriff auf eine IBM DB2-Datenbank, in der Sie die Berechtigung zum Erstellen und Befüllen von Tabellen haben.
Bereiten wir zuerst die Datenbank vor, sodass sie auch tatsächlich XML-Daten enthält. Sie können dies entweder mit einem für Ihre Datenbank spezifischen Datenbankverwaltungstool oder direkt in MapForce tun. Um dies direkt in MapForce zu tun, befolgen Sie die unten stehende Anweisung:
1.Erstellen Sie ein neues Mapping und klicken Sie auf das Register DB-Abfrage.
2.Klicken Sie auf Schnellverbindung ( ) und befolgen Sie die Anweisungen des Assistenten, um eine neue Datenbankverbindung herzustellen (siehe auch Beispiele für Datenbankverbindungen).
3.Fügen Sie den folgenden Text in den SQL-Editor ein. Mit dieser SQL-Abfrage wird eine Datenbanktabelle namens ARTICLES erstellt und mit Daten befüllt.
-- Create the table |
4.Klicken Sie auf die Schaltfläche Ausführen ( ). Das Ergebnis der Abfrage wird im Abfrageergebnis-Fenster angezeigt. Wenn die Abfrage erfolgreich ausgeführt wurde, werden vier Zeilen zur neu erstellten Tabelle hinzugefügt.
Als nächstes erstellen wir ein Mapping, das auf Basis von Bedingungen XML-Daten aus der oben erstellten Tabelle ARTICLES abruft. Es sollen nur Artikel aus der Spalte ARTICLES abgerufen werden, deren Preis größer als 100 ist.
Schritt 1: Hinzufügen der Datenbank
1.Klicken Sie auf das Register Mapping, um wieder zurück ins Mapping-Fenster zu wechseln.
2.Klicken Sie im Menü Einfügen auf Datenbank und befolgen Sie die Anweisungen des Assistenten, um eine Verbindung zur Datenbank herzustellen.
3.Wenn Sie aufgefordert werden, die Datenbankobjekte auszuwählen, wählen Sie die zuvor erstellte Tabelle ARTICLES aus.
![mf_db2_xmltype1](./images/mf_db2_xmltype1.png)
Schritt 2: Zuweisen des Schemas zum Feld vom Typ XML
1.Klicken Sie mit der rechten Maustaste auf das Datenelement ARTICLE der Komponente und wählen Sie im Kontextmenü den Befehl XML-Schema Feld zuweisen.
![mf_db2_xmltype2](./images/mf_db2_xmltype2.png)
2.Wählen Sie Datei und navigieren Sie zum folgenden Schema: <Dokumente>\Altova\MapForce2024\MapForceExamples\DB2xsd.xsd.
Schritt 3: Hinzufügen der SQL WHERE/ORDER-Komponente
1.Klicken Sie im Menü Einfügen auf SQL WHERE/ORDER.
2.Verbinden Sie die Spalte ARTICLE vom Typ XML mit dem Input von SQL WHERE/ORDER.
![mf_db2_xmltype4](./images/mf_db2_xmltype4.png)
3.Geben Sie im Dialogfeld "Eigenschaften" der SQL-WHERE/ORDER-Komponente den folgenden Text ein:
XMLEXISTS('\$a/Article[SinglePrice>100]' PASSING ARTICLE as "a") |
![mf_db2_xmltype5](./images/mf_db2_xmltype5.png)
Der obige Text bildet den "WHERE"-Teil der SQL-Abfrage. Zur Mapping-Laufzeit wird er mit dem im Dialogfeld angezeigten "SELECT"-Teil kombiniert. In dieser Anweisung werden die Funktion XMLEXISTS und die für IBM DB2-Datenbank spezifische Syntax verwendet.
Schritt 4: Hinzufügen der CSV-Zieldatei
1.Klicken Sie im Menü Einfügen auf Textdatei.
2.Wenn Sie dazu aufgefordert werden, wählen Sie Einfache Verarbeitung für Standard-CSV... verwenden und klicken Sie auf Weiter.
3.Klicken Sie drei Mal auf Feld anhängen, um drei Felder hinzuzufügen, in denen die Nummer, der Name und der Preis des Artikels gespeichert werden sollen. Belassen Sie alle anderen Einstellungen unverändert.
4.Ziehen Sie die Mapping-Verbindungen wie unten gezeigt.
![mf_db2_xmltype6](./images/mf_db2_xmltype6.png)
Sie können nun durch Klicken auf das Fenster Ausgabe eine Vorschau auf das Mapping-Ergebnis anzeigen. Wie erwartet, werden nur Artikel mit einem Preis über 100 in der Ausgabe angezeigt.
![mf_db2_xmltype7](./images/mf_db2_xmltype7.png)