Altova MapForce 2024 Enterprise Edition

Sie können in MapForce benutzerdefinierte SQL SELECT-Anweisungen mit oder ohne Parameter erstellen. Diese Anweisungen werden in Form tabellenähnlicher Strukturen dargestellt, anhand derer Sie Daten auf andere Komponenten mappen können. So können Sie z.B. eine benutzerdefinierte Anweisung zum Verknüpfen von Tabellen mittels Join, zum Filtern Ihrer Datenbankdaten und Definieren von Parametern, die Werte aus anderen Komponenten im Mapping erhalten können, erstellen.

 

SQL SELECT-Anweisungen ohne Parameter werden in C++, C#, Java und Built-in unterstützt. SQL SELECT-Anweisungen mit Input-Parametern sind nur mit der Transformationssprache Built-In kompatibel.

 

Erstellen/Berarbeiten/Entfernen einer SELECT-Anweisung

Um eine SELECT-Anweisung zu einer Datenbankkomponente hinzuzufügen, gehen Sie vor, wie unten beschrieben.

 

1.Klicken Sie mit der rechten Maustaste auf die Titelleiste der Datenbankkomponente und wählen Sie im Kontextmenü den Befehl Datenbankobjekte hinzufügen/entfernen/bearbeiten. Alternativ dazu können Sie auch die Datenbankkomponente auswählen und anschließend den Menübefehl Komponente | Datenbankobjekte hinzufügen/entfernen/bearbeitenauswählen.

2.Wählen Sie im Dialogfeld Datenbankobjekte hinzufügen/entfernen/bearbeiten eine der folgenden Methoden:

 

oUm eine benutzerdefinierte SELECT-Anweisung einzugeben, klicken Sie auf die Schaltfläche SELECT-Anweisung hinzufügen/bearbeiten.

oUm eine SELECT-Anweisung für eine bestimmte Tabelle zu generieren, klicken Sie mit der rechten Maustaste auf die gewünschte Tabelle und wählen Sie im Kontextmenü den Befehl SELECT-Anweisung erzeugen und hinzufügen.... Nach Auswahl dieses Befehls können Sie die generierte Anweisung anschließend bearbeiten.

 

Um eine vorhandene SELECT-Anweisung zu bearbeiten, wählen Sie eine der folgenden Methoden:

 

Klicken Sie mit der rechten Maustaste auf die SELECT-Anweisung in der Komponente und wählen Sie den Befehl SELECT-Anweisung bearbeiten.

Klicken Sie mit der rechten Maustaste auf die Datenbankkomponente und wählen Sie im Kontextmenü den Befehl Datenbankobjekte hinzufügen/entfernen/bearbeiten. Doppelklicken Sie anschließend im Dialogfeld Datenbankobjekte hinzufügen/entfernen/bearbeiten auf die gewünschte SELECT-Anweisung.

Wählen Sie im Dialogfeld Datenbankobjekte hinzufügen/entfernen/bearbeiten die gewünschte SELECT-Anweisung aus und klicken Sie auf SELECT-Anweisung hinzufügen/bearbeiten.

Klicken Sie im Dialogfeld Datenbankobjekte hinzufügen/entfernen/bearbeiten mit der rechten Maustaste auf die gewünschte SELECT-Anweisung und wählen Sie SELECT-Anweisung bearbeiten.

 

Um eine SELECT-Anweisung zu entfernen, gehen Sie folgendermaßen vor:

 

1.Klicken Sie mit der rechten Maustaste auf die Datenbankkomponente und wählen Sie den Befehl Datenbankobjekte hinzufügen/entfernen/bearbeiten aus.

2.Klicken Sie mit der rechten Maustaste auf die zu löschende SELECT-Anweisung und wählen Sie im Kontextmenü den Befehl SELECT-Anweisung entfernen.

 

Wichtige Hinweise

Beachten Sie die folgenden Punkte:

 

Alle berechneten Ausdrücke in der SELECT-Anweisung müssen einen eindeutigen Korrelationsnamen haben (wie z.B. SELECT *, (Quantity*UnitPrice) AS Price), um als mapbare Datenelemente zur Verfügung zu stehen.

Wenn Sie über JDBC eine Verbindung zu einer Oracle- oder IBM DB2-Datenbank herstellen, darf die SELECT-Anweisung kein Semikolon am Ende aufweisen.

 

SQL SELECT-Anweisungen ohne Parameter

Im Beispiel unten sehen Sie, wie Sie mit benutzerdefinierten SELECT-Anweisungen ohne Parameter arbeiten. Im unten gezeigten Mapping werden Datenbankdaten auf eine Textdatei gemappt. Die Datenbank BookCatalog.sqlite hat eine Parent-Tabelle namens Authors und eine Child-Tabelle namens Books. In der Komponente wird jedoch nur die SELECT-Anweisung mit einer Baumstruktur angezeigt. Die Baumstruktur hängt von der SQL-Abfrage ab, die Sie im Dialogfeld SQL SELECT-Anweisung eingeben definiert haben. Da von den Tabellen Authors und Books nichts gemappt wird, fehlen diese Tabellen in der Komponente.

MF_SELECT01

SELECT-Anweisung

Wir haben für die Datenbankkomponente die folgende SQL-Anweisung hinzugefügt (siehe Anleitung Erstellen/Berarbeiten/Entfernen einer SELECT-Anweisung):

MF_SELECT02

Die SQL-Anweisung wählt alle Tabellen aus der Tabelle Authors aus und filtert die Datenbankdaten, sodass nur Autoren aus dem UK inkludiert werden. Sobald wir diese Anweisung zum Dialogfeld SQL SELECT-Anweisung eingeben hinzugefügt haben, steht die Anweisung im Dialogfeld Datenbankobjekte hinzufügen/entfernen/bearbeiten zur Verfügung (Abbildung unten). Die Anweisung wird auch in der Datenbankkomponente angezeigt (siehe Mapping oben). Die Anzahl der sichtbaren Zeilen der SELECT-Anweisung kann im Dialogfeld Optionen konfiguriert werden (Option Anzeige der Annotation einschränken auf).

MF_SELECT03

Ausgabe

In der Ausgabe wird eine Liste kommagetrennter Werte angezeigt, die Autoren nur aus dem UK enthält (Codefragment unten).

 

Author,Country,Website

Bram Stoker,UK,www.bramstoker.org

Charles Dickens,UK,www.charlesdickensinfo.com

Emily Brontë,UK,n/a

James Herbert,UK,www.james-herbert.co.uk

Neil Gaiman,UK,www.neilgaiman.com

Terry Pratchett,UK,www.terrypratchettbooks.com

Agatha Christie,UK,www.agathachristie.com

Roald Dahl,UK,www.roalddahlfans.com

David Walliams,UK,www.worldofdavidwalliams.com

Kenneth Grahame,UK,n/a

Philip Pullman,UK,www.philip-pullman.com

J.K. Rowling,UK,www.jkrowling.com

Ann Cleeves,UK,www.anncleeves.com

 

SQL SELECT-Anweisungen mit Parametern

In unserem zweiten Beispiel wird ein Mapping gezeigt, in dem die Datenbankkomponente eine benutzerdefinierte SELECT-Anweisung mit einem Parameter hat (Abbildung unten).

MF_SELECT04

SELECT-Anweisung

Wir haben für die Komponente BookCatalog die folgende SQL-Anweisung eingegeben:

MF_SELECT05

In der Anweisung wird der Parameter Country verwendet. Dieser Parameter kann Werte aus der Konstante erhalten (unter der Komponente BookCatalog). Um Daten aus der SELECT-Anweisung mit dem Parameter mappen zu können, klicken Sie in der Datenbankkomponente auf die Schaltfläche selectSprocButton neben dem Node SELECT_Statement (Mapping oben) und wählen Sie im Kontextmenü den Befehl Aufruf mit Parametern einfügen. Dadurch wird eine Aufrufkomponente mit Parametern eingefügt (mittlere Komponente im Mapping oben). Die Aufrufkomponente besteht aus zwei Teilen: Der linke Teil erhält einen Input-Parameter (in unserem Fall Country) und der rechte Teil repliziert die SELECT-Anweisung mit der Baumstruktur aus der Datenbankkomponente. Die gefilterten Daten werden anschließend auf die Textdatei Authors gemappt.

 

Ausgabe

In der Ausgabe werden nun nur Autoren aus den USA angezeigt (Codefragment unten).

 

Author,Country,Website

Stephen King,US,www.stephenking.com

Frank Herbert,US,n/a

Isaac Asimov,US,www.asimovonline.com

Blake Crouch,US,www.blakecrouch.com

Ray Bradbury,US,www.raybradbury.com

Joe Hill,US,www.joehillfiction.com

Josh Malerman,US,www.joshmalerman.com

George R. R. Martin,US,www.georgerrmartin.com

A. J. Finn,US,n/a

Dan Brown,US,www.danbrown.com

Dean Koontz,US,www.deankoontz.com

 

Beispieldateien

Nähere Informationen zu Mappings, in denen benutzerdefinierte SQL SELECT-Anweisungen als Input verwendet werden, finden Sie in den folgenden Beispielen im Ordner MapForceExamples:

 

DB_EmployeeListByTitle.mfd

DB_MostExpensiveArticle.mfd

DB_ManagerList_AllOffices.mfd

DB_ManagerList_SelectedDepartment.mfd

DB_ManagerList_SelectedOffice.mfd

 

© 2017-2023 Altova GmbH