Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Load

In einem Diagrammänderungskontext lädt die LOAD-Anweisung zusätzliche Daten aus im Skript definierten Daten oder aus einer zuvor geladenen Tabelle in den Hypercube. Daten können auch aus Analyseverbindungen geladen werden.

InformationshinweisDie LOAD-Anweisung muss den Zusatz Replace oder Add haben, andernfalls wird sie abgelehnt.

Syntax:  

Add | Replace LOAD fieldlist

(

inline data [ format-spec ] |

resident table-label

) | extension pluginname.functionname([script] tabledescription)]

[ where criterion | while criterion ]

[ group by groupbyfieldlist ]

[order by orderbyfieldlist ]

Argumente:  

Argumente
ArgumentBeschreibung
fieldlistfieldlist ::= ( * | field{, * | field } )

Liste der zu ladenden Felder. * in einer Felderliste bedeutet alle Felder in der Tabelle.

field ::= ( fieldref | expression ) [as aliasname ]

Die Felddefinition muss immer eine Literale enthalten, einen Verweis auf ein bestehendes Feld oder eine Formel.

fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )

Dabei ist fieldname ein Text, der einem Feldnamen in der Tabelle entspricht. Beachten Sie, dass der Feldname zwischen geraden doppelten Anführungszeichen oder eckigen Klammern stehen muss, wenn er beispielsweise Leerzeichen enthält. Mitunter sind Feldnamen nicht im Tabellenkopf verfügbar. Verwenden Sie in diesem Fall stattdessen folgende Notation:

@fieldnumber bezeichnet die Nummer des Feldes in einer Textdatei mit Trennzeichen. Es muss eine ganze positive Zahl mit vorangehendem "@" sein. Die Nummerierung beginnt stets mit 1 und endet mit der Gesamtzahl der Felder.

@startpos:endpos bezeichnet Start- und Endposition eines Feldes in einer Datei mit festen Satzlängen. Die Positionen müssen beide positive ganze Zahlen sein. Beiden Zahlen muss ein "@" vorangehen und sie müssen durch einen Doppelpunkt getrennt sein. Die Nummerierung beginnt stets mit 1 und geht bis zu der entsprechenden Zahl von Stellen. Im letzten Feld wird n als Endposition verwendet.

  • Folgt direkt hinter @startpos:endpos der Buchstabe I oder U, werden die eingelesenen Daten als binär codierte ganze Zahl mit Vorzeichen (I) bzw. als binär codierte ganze Zahl ohne Vorzeichen U (Intel Byte Order) interpretiert. Die Zahl der eingelesenen Positionen muss 1, 2 oder 4 betragen.
  • Folgt direkt hinter @startpos:endpos der Buchstabe R, werden die eingelesenen Daten als binär codierte reelle Zahlen (IEEE 32-Bit- oder 64-Bit-Gleitkommazahl) interpretiert. Die Zahl der eingelesenen Positionen muss 4 oder 8 betragen.
  • Folgt direkt hinter @startpos:endpos der Buchstabe B, werden die eingelesenen Daten als binär codierte Dezimalzahlen BCD (Binary Coded Decimal) entsprechend dem COMP-3-Standard interpretiert. Es kann eine beliebige Zahl von Bytes angegeben werden.

expression kann eine numerische Funktion oder eine Stringfunktion sein, die sich auf ein oder mehrere Felder derselben Tabelle bezieht. Weitere Informationen finden Sie in den Erläuterungen der Formel-Syntax.

Der Zusatz as weist dem Feld einen neuen Namen zu.

inlineDer Zusatz inline wird benutzt, wenn Daten direkt in das Skript eingegeben und nicht aus einer Datei geladen werden sollen.

data ::= [ text ]

Daten, die durch eine inline-Bedingung in das Skript eingefügt werden, müssen in doppelten Anführungszeichen oder in eckigen Klammern stehen. Der Text wird auf die gleiche Weise interpretiert wie der Inhalt einer Datei, d. h. er sollte auch genauso aufgebaut sein. Wenn Sie beispielsweise in einer Textdatei eine neue Zeile beginnen würden, sollten Sie dies auch im Text eines inline-Befehls durch Drücken der ENTER-Taste tun. Die Anzahl der Spalten wird durch die erste Zeile definiert.

format-spec ::= ( fspec-item {, fspec-item } )

Die Formatbezeichnung besteht aus einer Auflistung von Formatoptionen, die in Klammern stehen. Weitere Informationen finden Sie unter Formatoptionen.

resident Der Zusatz resident wird benutzt, um Daten aus einer bereits geladenen Tabelle zu laden.

table label ist die Bezeichnung, die der LOAD-Anweisung vorangeht, durch den die Tabelle erstellt wurde. Am Ende des resident-Zusatzes sollte ein Doppelpunkt stehen.

Laden von Daten aus bereits geladenen Tabellen

Tabellenbezeichnungen

extension

Sie können Daten aus Analyseverbindungen laden. Sie müssen die extension-Bedingung verwenden, um eine Funktion aufzurufen, die im Plugin für serverseitige Erweiterung (SSE) definiert ist, oder ein Skript auswerten.

Sie können eine einzelne Tabelle an das SSE-Plugin senden, worauf eine einzelne Datentabelle zurückgegeben wird. Wenn das Plugin nicht die Namen der zurückzugebenden Felder angibt, werden die Felder Field1, Field2 usw. benannt.

Extension pluginname.functionname( tabledescription );

  • Laden von Daten mithilfe einer Funktion in einem SSE-Plugin

    tabledescription ::= (table { ,tablefield} )

    Wenn Sie keine Tabellenfelder angeben, werden die Felder in der Ladereihenfolge verwendet.

  • Laden von Daten durch Auswertung eines Skripts in einem SSE-Plugin

    tabledescription ::= ( script, table { ,tablefield} )

Datentypen werden in Analyseverbindungen automatisch erkannt. Wenn die Daten keinen numerischen Wert und mindestens einen Nicht-NULL-Textstring enthalten, wird das Feld als Text betrachtet. In allen anderen Fällen wird es als numerisch betrachtet.

Sie können den Datentyp erzwingen, indem Sie einen Feldnamen mit String() oder mit Mixed() umgeben.

  • String() erzwingt, dass ein Feld als Text betrachtet wird. Wenn das Feld numerisch ist, wird der Textteil des dualen Werts extrahiert und keine Konvertierung vorgenommen.
  • Mixed() erzwingt, dass das Feld als dual betrachtet wird.

String() oder Mixed() können nicht außerhalb von extension-Tabellenfelddefinitionen verwendet werden, und Sie können keine anderen Qlik Sense Funktionen in einer Tabellenfelddefinition verwenden.

Weitere Informationen zu Analyseverbindungen finden Sie im GitHub-Repository. qlik-oss/server-side-extension

wherewhere wird benutzt, um anhand eines Kriteriums zu prüfen, ob der Datensatz geladen wird oder nicht. Ist criterion True, wird der Datensatz geladen.

criterion ist eine logische Formel.

while

Der Zusatz while dient dazu, einen Datensatz mehrfach zu laden. Der Datensatz wird solange eingelesen, wie criterion True ist. Sinnvollerweise schließt ein while-Zusatz die Funktion IterNo( ) ein.

criterion ist eine logische Formel.

group by

Der Zusatz group by bestimmt, nach welchen Feldern die Daten aggregiert (gruppiert) werden sollen. Die Aggregierungsfelder sollten in den geladenen Formeln verwendet werden. Außerhalb von Aggregierungsfunktionen dürfen in load-Befehlen mit group by-Zusatz nur die im group by-Zusatz aufgeführten Felder geladen werden.

groupbyfieldlist ::= (fieldname { ,fieldname } )

order byDer Zusatz order by kann nur in load-Befehlen mit resident-Zusatz benutzt werden, d. h. wenn Daten aus einer bereits geladenen Tabelle eingelesen werden. Er dient dazu, die Datensätze der im resident-Zusatz bezeichneten Tabelle vor dem erneuten Einlesen zu sortieren. Dabei kann nach einem oder mehreren Felder in auf- oder absteigender Reihenfolge sortiert werden. Die Sortierung erfolgt zunächst nach numerischen Werten, dann nach nationaler Sortierreihenfolge. Diese Bedingung darf nur verwendet werden, wenn die Datenquelle eine bezeichnete Tabelle ist.

Mit den Ordnungsfeldern wird angegeben, nach welchem Feld die bezeichnete Tabelle sortiert wird. Das Feld kann durch den Feldnamen oder die Feldnummer bezeichnet sein (die Nummerierung beginnt stets bei 1).

orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] }

Hinter sortorder folgt entweder asc für aufsteigend oder desc für absteigend. Fehlt die sortorder, wird asc angenommen.

fieldname, path, filename und aliasname sind Strings. Als fieldname kann jedes Feld in der Quelltabelle verwendet werden. Felder, die mithilfe der as-Bedingung (aliasname) erstellt werden, befinden sich außerhalb des Gültigkeitsbereichs und können nicht im gleichen load-Befehl verwendet werden.

Weitere Informationen

 

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!