Load

L'instruction LOAD charge des champs à partir d'un fichier, de données définies dans le script, d'une table déjà chargée, d'une page Web, du résultat d'une instruction SELECT ultérieure ou via la génération automatique de données.

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 Description
distinct distinct est un prédicat utilisé pour charger uniquement le premier enregistrement en cas de doublons.
fieldlist fieldlist ::= ( * | field {, field } )

Liste des champs à charger. L'utilisation du symbole * comme liste de champs signifie inclure tous les champs de la table.

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

La définition du champ doit toujours contenir un littéral, une référence à un champ existant ou une expression.

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

fieldname est un texte identique à un nom de champ dans la table. Notez que le nom du champ doit être mis entre guillemets doubles droits ou entre crochets s'il contient des espaces, par exemple. Les noms des champs ne sont pas toujours disponibles de manière explicite. Une notation différente est alors utilisée :

@fieldnumber représente le numéro du champ dans un fichier de table délimité. Il doit s'agir d'un entier positif précédé d'un arobase (@). La numérotation est toujours effectuée de 1 jusqu'au nombre total de champs.

@startpos:endpos représente les positions de début et de fin d'un champ dans un fichier contenant des enregistrements de longueur fixe. Ces positions doivent être toutes deux des entiers positifs. Les deux nombres doivent être précédés d'un arobase (@) et séparés par deux-points. La numérotation est toujours effectuée de 1 jusqu'au nombre total de positions. Dans le dernier champ, n est utilisé comme position de fin.

  • Si @startpos:endpos est immédiatement suivi des caractères I ou U, les octets lus seront interprétés comme un entier binaire signé (I) ou non signé (U) (selon l'ordre des octets d'Intel). Le nombre de positions lues doit être égal à 1, 2 ou 4.
  • Si @startpos:endpos est immédiatement suivi du caractère R, les octets lus seront interprétés comme un nombre réel binaire (en virgule flottante de 32 bits ou 64 bits IEEE). Le nombre de positions lues doit être égal à 4 ou 8.
  • Si @startpos:endpos est immédiatement suivi du caractère B, les octets lus seront interprétés comme des nombres BCD (Binary Coded Decimal) selon la norme COMP-3. Vous pouvez spécifier n'importe quel nombre d'octets.

expression peut correspondre à une fonction numérique ou une fonction de chaîne basée sur un ou plusieurs autres champs de la même table. Pour plus d'informations, voir la syntaxe des expressions.

as est utilisé pour attribuer un nouveau nom au champ.

from

from est utilisé si les données doivent être chargées à partir d'un fichier.

file ::= [ path ] filename

  • absolu

    Example: c:\data\

  • chemin relatif par rapport au chemin du document QlikView.

    Example: data\

  • adresse URL (HTTP ou FTP), renvoyant à un emplacement sur Internet ou un intranet. L'URL doit être codée en URL, par exemple si elle contient des espaces.

    Example: http://www.qlik.com

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

Si le chemin d'accès est omis, QlikView recherche le fichier dans le répertoire que lui indique l'instruction Directory. Si aucune instruction Directory n'est spécifiée, QlikView recherche le fichier dans le répertoire de travail, qui correspond généralement au répertoire dans lequel se trouve le fichier QlikView.

Remarque: Dans une installation QlikView Server, le répertoire de travail correspond à C:\ProgramData\QlikTech\Documents. Il est possible de modifier le répertoire de travail par défaut à partir de la console QlikView Management Console.

L'argument filename peut contenir les caractères génériques DOS standard (* et ?). Tous les fichiers correspondants sont alors chargés dans le répertoire indiqué.

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

La spécification du format se compose d'une liste de plusieurs éléments de spécification du format, mis entre parenthèses.

Directory

From

from_field from_field est utilisé si les données doivent être chargées à partir d'un champ précédemment chargé.

fieldassource::=(tablename, fieldname)

Le champ correspond au nom des arguments tablename et fieldname précédemment chargés.

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

La spécification du format se compose d'une liste de plusieurs éléments de spécification du format, mis entre parenthèses.

inline inline est utilisé si les données doivent être saisies dans le script au lieu d'être chargées à partir d'un fichier.

data ::= [ text ]

Les données saisies à l'aide d'une clause inline doivent être mises entre guillemets ou entre crochets. Le texte placé entre ces guillemets ou crochets est interprété de la même manière que le contenu d'un fichier. C'est pourquoi vous devez également insérer une nouvelle ligne dans la clause inline, là où vous en auriez inséré une dans un fichier texte. Pour ce faire, appuyez sur la touche Entrée lors de la saisie du script. Le nombre de colonnes est défini dans la première ligne.

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

La spécification du format se compose d'une liste de plusieurs éléments de spécification du format, mis entre parenthèses.

resident resident est utilisé si les données doivent être chargées à partir d'une table précédemment chargée.

table label est une étiquette précédant l'instruction LOAD ou SELECT ayant créé la table de départ. L'étiquette doit être saisie avec deux-points à la fin.

Lorsque vous utilisez une combinaison d'instructions de chargement distinct et resident dans QlikView 12.00 ou version ultérieure, l'ordre de chargement des données diffère de celui de QlikView 11.20. Pour définir l'ordre de chargement souhaité, ajoutez une clause order by.

Chargement de données à partir d'une table déjà chargée

Étiquettes de table

autogenerate autogenerate est utilisé si les données doivent être générées automatiquement par QlikView.

size ::= number

Number est un entier indiquant le nombre d'enregistrements à générer. La liste des champs ne doit pas contenir d'expressions qui requièrent des données provenant d'une base de données. Ne sont admises dans les expressions que des constantes et des fonctions sans paramètres (par ex. rand() ou recno()).

extension

Vous pouvez charger des données à partir de connexions analytiques. Vous devez utiliser la clause extension pour appeler une fonction définie dans le plug-in SSE (Server-Side Extension) ou pour évaluer un script.

Il est possible d'envoyer une seule table au plug-in SSE ; une seule table de données est alors renvoyée. Si le plug-in ne précise pas les noms des champs renvoyés, les champs seront nommés Field1, Field2, et ainsi de suite.

Extension pluginname.functionname( tabledescription );

  • Chargement de données à l'aide d'une fonction dans un plug-in SSE

    tabledescription ::= (table { ,tablefield} )

    Si vous ne déclarez pas les champs de table, ils sont utilisés dans l'ordre de chargement.

  • Chargement de données via l'évaluation d'un script dans un plug-in SSE

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

Les types de données sont automatiquement détectés dans les connexions analytiques. Si les données ne comportent aucune valeur numérique et comprennent au moins une chaîne de texte non NULLE, le champ est interprété comme du texte. Dans tous les autres cas, il est considéré comme de type numérique.

Vous pouvez appliquer un type de données forcé en entourant le nom d'un champ à l'aide de String() ou Mixed().

  • String() convertit de force le champ en texte. Si le champ est numérique, la partie texte de la valeur double est extraite et aucune conversion n'est effectuée.
  • Mixed() convertit de force le champ en valeur double.

Il est impossible d'utiliser String() ou Mixed() en dehors des définitions de champ de table extension. De plus, vous ne pouvez pas utiliser d'autres fonctions QlikView dans une définition de champ de table.

Pour créer une connexion analytique dans QlikView Server ou QlikView Desktop, voir : Connexions analytiques

Vous trouverez des informations complémentaires sur les connexions analytiques dans le référentiel GitHub : qlik-oss/server-side-extension.

where where est une clause utilisée pour indiquer si un enregistrement doit être inclus ou pas dans la sélection. La sélection est incluse si l'expression criterion est définie sur True.

criterion est une expression logique.

while

while est une clause utilisée pour indiquer si un enregistrement doit être lu plusieurs fois. Le même enregistrement est lu tant que l'expression criterion est définie sur True. Pour être utile, une clause while doit généralement inclure la fonction IterNo( ).

criterion est une expression logique.

group_by

group by est une clause utilisée pour déterminer les champs sur lesquels les données doivent être agrégées (groupées). Les champs d'agrégation doivent être inclus d'une manière ou d'une autre dans les expressions chargées. Aucun autre champ que les champs d'agrégation ne peut être utilisé en dehors des fonctions d'agrégation dans les expressions chargées.

groupbyfieldlist ::= (fieldname { ,fieldname } )

order_by order by est une clause utilisée pour trier les enregistrements d'une table résidente avant qu'ils ne soient traités par l'instruction load. La table résidente peut être triée par un ou plusieurs champs, par ordre croissant ou décroissant. Le tri est principalement effectué par valeur numérique, puis par valeur de paramètres régionaux de classement national. Cette clause peut uniquement être utilisée lorsque la source de données est une table résidente.

Les champs de tri indiquent les champs selon lesquels la table résidente est triée. Le champ peut être spécifié par son nom ou par son numéro dans la table résidente (le premier champ est le numéro 1).

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

sortorder correspond soit à asc pour un ordre croissant, soit à desc pour un ordre décroissant. Si aucun argument sortorder n'est spécifié, c'est asc qui est utilisé.

fieldname, path, filename et aliasname sont des chaînes textuelles représentant ce que ces noms désignent. N'importe quel champ de la table source peut être utilisé comme fieldname. Toutefois, les champs créés via la clause as (aliasname) ne sont pas concernés et ne peuvent pas être utilisés dans la même instruction load.

Si aucune source de données n'est fournie par les clauses from, inline, resident, from_field ou autogenerate, les données sont chargées à partir du résultat de l'instruction SELECT ou LOAD qui suit immédiatement. L'instruction qui suit ne doit pas comporter de préfixe.

Instruction antérieure LOAD

Examples: