read-binary-file
Diese Funktion gibt den Inhalt der angegebenen Datei als BLOB (Binary Large Object) vom Typ xs:base64Binary zurück. Zwar handelt es sich beim Datentyp um "base64Binary", doch wird er intern einfach als BLOB dargestellt. Erst wenn Sie das Ergebnis der Funktion auf einen XML-Node vom Typ xs:base64Binary mappen, wird er tatsächlich base64-kodiert. Sie könnten das Ergebnis der Funktion auch auf xs:hexBinary, einen Datenbank-Blob oder ein Binärdatenfeld in einer Protocol Buffer-Struktur mappen.
Um eine Binärdatei in ein Mapping einzulesen, geben Sie als Input den Pfad zum Argument filepath an. Wenn der Dateipfad (filepath) relativ ist, sucht MapForce im selben Verzeichnis wie dem Mapping-Verzeichnis nach der Datei. Das Argument must-exist ist optional; wenn die Datei nicht geöffnet werden kann und dieser Parameter true ist, gibt das Mapping einen Fehler aus. Wenn die Datei nicht geöffnet werden kann und dieser Parameter false ist, wird eine leere Binärdatei zurückgegeben.
Sprachen
Built-in.
Parameter
Name | Typ | Beschreibung |
---|---|---|
filepath | xs:string | Der Dateipfad. |
must-exist | xs:boolean | Optionaler Parameter. Wenn die Datei nicht geöffnet werden kann und dieser Parameter true ist, gibt das Mapping einen Fehler aus. Wenn die Datei nicht geöffnet werden kann und dieser Parameter false ist, wird eine leere Binärdatei zurückgegeben.
Der Standardwert ist true. |
Beispiel
Im unten gezeigten Mapping werden Daten aus einer Bilddatei gelesen und in eine Datenbanktabelle geschrieben. Die Zieldatenbank ist SQLite. Beachten Sie, dass der Datentyp des Datenbankfelds picture BLOB ist.
Zur Extrahierung von binärem Inhalt aus der Datei wurde die Funktion read-binary-file verwendet. Das erste Argument filepath in diesem Beispiel wird von einer Konstante bereitgestellt. Da der Pfad relativ ist, sucht MapForce im selben Verzeichnis wie dem Mapping-Verzeichnis nach der Bilddatei.
Durch das Mapping werden die folgenden Felder in der Zieldatenbank befüllt:
•id - in diesem Beispiel wird die Datenbankkomponente so konfiguriert, dass id von der Datenbank generiert und nicht über das Mapping bereitgestellt wird. Nähere Informationen finden Sie unter Einfügen von Daten in eine Tabelle.
•title - Dieser Wert stammt aus einer einfachen Input-Komponente desselben Namens. Beachten Sie, dass ein Design-Zeit-Ausführungswert gesetzt wird ("product1"), damit Sie eine Vorschau auf das Mapping anzeigen können. Nähere Informationen dazu finden Sie unter Bereitstellen von Parametern für das Mapping.
•picture - dieses Feld erhält seinen Ausgabewert direkt aus der read-binary-file-Funktion.
Da es sich bei der Zielkomponente um eine Datenbank handelt, wird bei der Anzeige der Mapping-Vorschau ein Pseudo-SQL-Script generiert, das Sie anzeigen, aber dazu nicht verwenden können, um Änderungen in die Datenbank zu schreiben. Um das eigentliche Script an der Datenbank auszuführen, wählen Sie den Menübefehl Ausgabe | SQL-Script ausführen.