Load

Der LOAD-Befehl lädt Felder aus einer Datei aus Daten, die im Skript definiert sind, aus einer zuvor geladenen Tabelle, aus einer Webseite, aus dem Ergebnis eines nachfolgenden SELECT-Befehls oder durch automatisches Generieren der Daten.

Syntax:  

LOAD [ distinct ] fieldlist

[( from file [ format-spec ] |

from_field fieldassource [format-spec]

inline data [ format-spec ] |

resident table-label |

autogenerate size )]

[ where criterion | while criterion ]

[ group_by groupbyfieldlist ]

[order_by orderbyfieldlist ]

Arguments:  

Argument Beschreibung
distinct Der Zusatz distinct bewirkt, dass von mehrfach vorkommenden Datensätzen jeweils nur der erste geladen wird.
fieldlist fieldlist ::= ( * | 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.

  • Setzen Sie direkt hinter @startpos:endpos den Buchstaben I oder U, wenn die Daten binär codiert sind mit Vorzeichen (I), bzw. ein U für binär codierte Daten ohne Vorzeichen (Intel Byte Order). 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.

from

from wird verwendet, um Daten aus einer Datei zu laden.

file ::= [ path ] filename

  • absolute

    Example: c:\data\

  • relativ zum QlikView-Dokumentpfad.

    Example: data\

  • als URL-Adresse (HTTP oder FTP), die eine Datei im Internet oder Intranet lokalisiert. Die URL muss URL-codiert werden, z. B. wenn Sie Leerzeichen enthält.

    Example: http://www.qlik.com

    Example: http://www.enterprise.com/project%20files (http://www.enterprise.com/project files)

Ist kein Pfad angegeben, sucht QlikView die Datei in dem Verzeichnis, das in der Directory-Anweisung angegeben ist. Enthält das Skript keine Directory-Anweisung, sucht QlikView im aktuellen Verzeichnis. Das ist üblicherweise das Verzeichnis des QlikView-Dokuments.

Hinweis: In einer QlikView-Serverinstallation ist das Standardarbeitsverzeichnis C:\ProgramData\QlikTech\Documents. Das Standardarbeitsverzeichnis kann im QlikView Management Console modifiziert werden.

In filename können die in DOS üblichen Wildcards verwendet werden (* und ?). Dadurch werden alle passenden Dateien aus dem angegebenen Verzeichnis geladen.

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

Die Formatbezeichnung besteht aus einer Auflistung von Formatoptionen, die in Klammern stehen.

Directory

From

from_field Der Zusatz from_field wird verwendet, um Daten aus einem bereits geladenen Feld zu laden.

fieldassource::=(tablename, fieldname)

Das Feld wird durch tablename und fieldname definiert.

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

Die Formatbezeichnung besteht aus einer Auflistung von Formatoptionen, die in Klammern stehen.

inline inline Der Zusatz wird verwendet, 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 einer inline-Bedingung durch Drücken der ENTER-Taste tun. Die Anzahl der Spalten wird durch die erste Zeile festgelegt.

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

Die Formatangabe besteht aus einer Auflistung von Formatangabeoptionen, die in Klammern stehen.

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

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

Bei Verwendung einer Kombination der load-Anweisungen distinct und resident in QlikView 12.00 oder höher ist die Lade-Reihenfolge anders als in QlikView 11.20. Verwenden Sie eine order by-Bedingung, um eine bestimmte Lade-Reihenfolge anzugeben.

Laden von Daten aus bereits geladenen Tabellen

Tabellenbezeichnungen

autogenerate Der Zusatz autogenerate wird verwendet, wenn Daten automatisch durch QlikView generiert werden sollen.

size ::= number

Number steht für eine ganze Zahl, die bezeichnet, wie viele Datensätze angelegt werden sollen. Die Felderliste darf in diesem Fall keine Formeln enthalten, die sich auf Daten aus einer Datenbank beziehen. In Formeln dürfen nur Konstanten oder parameterfreie Funktionen (z. B. rand() oder recno()) verwendet werden.

extension

Sie können Daten aus Analyseverbindungen laden. Sie müssen die Bedingung Erweiterung verwenden, um eine Funktion aufzurufen, die im SSE-Plug-In (Server-Side Extension) definiert ist, oder ein Skript auszuwerten.

Sie können eine einzelne Tabelle an das SSE-Plug-In senden. Dann wird eine einzelne Datentabelle geliefert. Wenn in dem Plug-In keine Namen für die gelieferten Felder angegeben sind, werden die Felder als Field1, Field2 usw. benannt.

Extension pluginname.functionname( tabledescription );

  • Laden von Daten mithilfe einer Funktion in einem SSE-Plug-In

    tabledescription ::= (table { ,tablefield} )

    Wenn Sie keine Tabellenfelder angeben, werden die Felder in der Lade-Reihenfolge verwendet.

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

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

Datentypen in Analyseverbindungen werden automatisch erkannt. Wenn die Daten keine Zahlenwerte und mindestens einen Textstring enthalten, der nicht NULL ist, gilt das Feld als Textfeld. In allen sonstigen Fällen gilt das Feld als Zahlenfeld.

Sie können den Datentyp manuell festlegen, indem Sie einen Feldnamen mit String() oder Mixed() umschließen.

  • Mit String() legen Sie Felder als Textfelder fest. Bei Zahlenfeldern wird der Text extrahiert, der Teil des dualen Werts ist. Es wird nichts umgewandelt.
  • Mit Mixed() legen Sie Felder als duale Felder fest.

String() und Mixed() können nur in Erweiterungs-Tabellenfelddefinitionen verwendet werden und Sie können in Tabellenfelddefinitionen keine anderen QlikView-Funktionen verwenden.

Informationen zum Erstellen einer Analyseverbindung in QlikView Server oder QlikView Desktop finden Sie unter: Analyseverbindungen

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

where where wird verwendet, 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

while Der Zusatz dient dazu, einen Datensatz mehrfach zu laden. Der Datensatz wird solange eingelesen, wie criterion True ist. Sinnvollerweise schließt eine while-Bedingung 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_by Der Zusatz order by kann nur in load-Befehlen mit resident-Zusatz verwendet 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 Textstrings, die dafür stehen, was die jeweiligen Namen andeuten. 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 in der gleichen load-Anweisung verwendet werden.

Wenn durch keinen der Debindungen from, inline, resident, from_field oder autogenerate eine Datenquelle definiert ist, werden Daten aus der durch die direkt nachfolgende SELECT- oder LOAD-Anweisung geladenen Tabelle gelesen. Diesem nachfolgenden Befehl sollte kein Zusatz vorangehen.

Vorangehender -Befehl LOAD

Examples:  

See also: