Load

L'istruzione LOAD carica i campi da un file, dai dati definiti nello script, da una tabella caricata in precedenza, da una pagina Web, dal risultato di un'istruzione SELECT seguente o dalla generazione automatica di dati.

Sintassi:  

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 ]

Argomenti:  

Argomento Descrizione
distinct distinct è un predicato che viene utilizzato se deve essere caricato solo il primo di record duplicati.
fieldlist fieldlist ::= ( * | field {, field } )

Un elenco di campi da caricare. L'utilizzo del carattere * come elenco dei campi indica tutti i campi della tabella.

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

La definizione di campo deve sempre contenere un valore letterale, un riferimento a un campo esistente o un'espressione.

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

fieldname è un testo che è identico al nome di un campo nella tabella. Tenere presente che il nome di campo deve essere racchiuso da virgolette doppie o parentesi quadre se, ad esempio, contiene spazi. Talvolta i nomi dei campi non sono disponibili in modo esplicito. Verrà quindi utilizzata una notazione differente:

@fieldnumber rappresenta il numero di campo di un file tabellare delimitato. Deve essere un intero positivo preceduto da @". La numerazione viene sempre eseguita partendo da 1 fino al numero di campi presenti.

@startpos:endpos rappresenta le posizioni di inizio e di fine di un campo in un file con record a lunghezza fissa. Le posizioni devono essere entrambe numeri interi positivi. I due valori numerici devono essere preceduti dal simbolo "@" e separati da due punti. La numerazione viene sempre eseguita partendo da 1 fino al numero di posizioni presenti. Nell'ultimo campo n viene utilizzato come posizione finale.

  • Se @startpos:endpos è seguito immediatamente dal carattere I o U, i byte letti verranno interpretati come un valore intero binario con segno (I) o senza segno (U), in base all'ordine dei byte Intel. Il numero di posizioni lette deve essere 1, 2 o 4.
  • Se @startpos:endpos è immediatamente seguito dal carattere R, la lettura dei byte verrà interpretata come un numero binario reale (a virgola mobile a 32 bit o a 64 bit conforme allo standard IEEE). Il numero di posizioni lette deve essere 4 o 8.
  • Se @startpos:endpos è immediatamente seguito dal carattere B, la lettura dei byte sarà interpretata come numeri BCD (Binary Coded Decimal), in base allo standard COMP-3. Può essere specificato un numero di byte qualsiasi.

expression può essere una funzione numerica o una funzione stringa basata su uno o molti altri campi della stessa tabella. Per ulteriori informazioni, vedere la sintassi delle espressioni.

as viene utilizzato per assegnare un nuovo nome al campo.

from

from viene utilizzato se i dati devono essere caricati da un file.

file ::= [ path ] filename

  • assoluto

    Esempio: c:\data\

  • relativo al percorso del documento QlikView.

    Esempio: data\

  • Indirizzo dell'URL (HTTP o FTP), che punta a una posizione in Internet o su una Intranet. L'URL deve essere espresso con l'apposita codifica, ad esempio per eventuali spazi contenuti.

    Esempio: http://www.qlik.com

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

Se tale percorso viene omesso, QlikView ricerca il file nella directory specificata dall'istruzione Directory. Se non è presente l'istruzione Directory, QlikView effettua la ricerca nella directory di lavoro, corrispondente in genere alla directory in cui si trova il file QlikView.

Nota: In un'installazione server QlikView la directory di lavoro predefinita è C:\ProgramData\QlikTech\Documents. La directory di lavoro predefinita può essere modificata in QlikView Management Console.

filename può contenere caratteri speciali nello standard DOS (* e ?). Tutti i file corrispondenti verranno caricati nella directory specificata.

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

La specifica del formato è costituita da un elenco di più voci di specifica del formato, racchiuse tra parentesi.

Vedere: Directory

Vedere: From

from_field from_field viene utilizzato nel caso in cui i dati devono essere caricati da un campo caricato in precedenza.

fieldassource::=(tablename, fieldname)

Il campo è il nome del valore di tablename e fieldname caricato in precedenza.

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

La specifica del formato è costituita da un elenco di più voci di specifica del formato, racchiuse tra parentesi.

inline inline viene utilizzato quando i dati devono essere immessi direttamente nello script e non caricati da un file.

data ::= [ text ]

I dati immessi mediante una clausola inline devono essere racchiusi tra virgolette doppie o tra parentesi quadre. Il testo tra parentesi o virgolette viene interpretato allo stesso modo del contenuto di un file. Pertanto, quando si desidera modificare o immettere una nuova riga in un file di testo, è necessario eseguire questa operazione anche nel testo di una clausola inline, ad esempio premendo il tasto INVIO mentre si digita lo script.

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

La specifica del formato è costituita da un elenco di più voci di specifica del formato, racchiuse tra parentesi.

resident resident viene usato se i dati devono essere caricati da una tabella caricata in precedenza.

table label è un'etichetta che precede le istruzioni LOAD o SELECT che hanno creato la tabella originale. L'etichetta dovrà essere indicata con i due punti finali.

Vedere: Caricamento di dati da una tabella caricata in precedenza

Vedere: Etichette di tabella

autogenerate autogenerate viene utilizzato se i dati devono essere automaticamente generati da QlikView.

size ::= number

Number è un numero intero e indica il numero di record che da generare. L'elenco dei campi non deve contenere espressioni che richiedono dati acquisiti da un database. Nelle espressioni sono consentite solo costanti e funzioni senza parametri, ad esempio rand() o recno().

where where è una clausola utilizzata per dichiarare se un record deve essere incluso o meno nella selezione. La selezione viene inclusa se criterion è True.

criterion è un'espressione logica.

while

while è una clausola che specifica se un record deve essere letto ripetutamente. Viene letto lo stesso record finché criterion è True. Per risultare utile, una clausola while deve generalmente includere la funzione IterNo( ).

criterion è un'espressione logica.

group_by

group by è una clausola usata per definire su quali campi devono essere aggregati (raggruppati) i dati.I campi di aggregazione devono essere inclusi in qualche modo nelle espressioni caricate. Nessun altro campo tranne i campi di aggregazione può essere usato al di fuori delle funzioni di aggregazione nelle espressioni caricate.

groupbyfieldlist ::= (fieldname { ,fieldname } )

order_by order by è una clausola utilizzata per ordinare i record di una tabella residente prima che vengano elaborati da un’istruzione load. La tabella residente può essere ordinata su uno o più campi, in modo crescente o decrescente. L’ordinamento viene eseguito innanzitutto in base ai valori numerici e secondariamente in base all'ordine di confronto nazionale. Questa clausola può essere utilizzata solamente quando la sorgente dati è una tabella residente.

I campi di ordinamento specificano il campo in base al quale viene ordinata la tabella residente. Il campo può essere specificato da un nome o dal suo numero nella tabella residente (il primo campo è il numero 1).

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

sortorder è asc per crescente o desc per decrescente. Se sortorder non è specificato, viene utilizzato asc.

fieldname, path, filename e aliasname sono stringhe di testo che rappresentano ciò che implica il loro rispettivo nome. Qualsiasi campo presente nella tabella sorgente può essere utilizzato come fieldname. Tuttavia, i campi creati mediante la clausola as (aliasname) non appartengono all'ambito e non possono essere utilizzati all'interno della stessa istruzione load.

Se non viene specificata alcuna sorgente dati mediante una clausola from, inline, resident, from_field o autogenerate , i dati verranno caricati dal risultato dell’istruzione SELECT o LOAD immediatamente successiva. L’istruzione successiva non dovrà avere un prefisso.

Vedere: Preceding LOAD

Esempi: