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.

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:  

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

    Example: c:\data\

  • relativo al percorso dei documenti QlikView

    Example: data\

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

    Example: http://www.qlik.com

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

Se il 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 di 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 i caratteri jolly DOS standard (* 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.

Directory

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. Il numero di colonne è definito nella prima riga.

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.

Quando si utilizza una combinazione di istruzioni LOAD distinct e resident in QlikView 12.00 o versioni successive, l'ordine di caricamento dei dati è diverso rispetto a QlikView 11.20. Per definire un ordine di caricamento desiderato, aggiungere una clausola order by.

Caricamento di dati da una tabella caricata in precedenza

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().

extension

È possibile caricare dati da connessioni di analisi. È necessario utilizzare la clausola extension per chiamare una funzione definita nel plug-in SSE (Server-Side Extension) o per valutare uno script.

È possibile inviare una singola tabella al plug-in SSE, che restituisce una singola tabella di dati. Se il plug-in non specifica i nomi dei campi restituiti, i campi saranno denominati Field1, Field2 e così via.

Extension pluginname.functionname( tabledescription );

  • Caricamento di dati mediante una funzione in un plug-in SSE

    tabledescription ::= (table { ,tablefield} )

    Se i campi della tabella non vengono specificati, verranno utilizzati in ordine di caricamento.

  • Caricamento di dati mediante valutazione di uno script in un plug-in SSE

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

I tipi di dati sono riconosciuti automaticamente nelle connessioni di analisi. Se i dati non hanno valori numerici e hanno almeno una stringa di testo non NULL, il campo è considerato di tipo testo. In tutti gli altri casi è considerato di tipo numerico.

È possibile forzare il tipo di dati racchiudendo il nome del campo in String() o Mixed().

  • String() forza il tipo del campo su testo. Se il campo è numerico, viene estratta la parte di testo del valore duale, senza eseguire alcuna conversione.
  • Mixed() forza il tipo del campo su duale.

String() o Mixed() non possono essere utilizzati esternamente alle definizioni dei campi della tabella extension e non è possibile utilizzare altre funzioni di QlikView nella definizione di un campo della tabella.

Per la creazione di una connessione di analisi in QlikView Server o QlikView Desktop, vedere: Connessioni di analisi

Ulteriori informazioni sulle connessioni di analisi sono disponibili nel repository di GitHub. qlik-oss/server-side-extension

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.

Preceding LOAD

Examples: