Vai al contenuto principale Passa a contenuto complementare

Load

In un contesto di modifica del grafico, l'istruzione LOAD carica dati aggiuntivi sull'ipercubo, da dati definiti nello script o da una tabella precedentemente caricata. È anche possibile caricare dati da connessioni di analisi.

Nota informaticaL'istruzione LOAD deve includere il prefisso Replace o Add, altrimenti verrà rifiutata.

Sintassi:  

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 ]

Argomenti:  

Argomenti
ArgomentoDescrizione
fieldlistfieldlist ::= ( * | 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.

inlineinline 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. Per ulteriori informazioni, vedere Voci per la specifica del formato.

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

table label è un'etichetta che precede l'istruzione LOAD che ha creato la tabella originale. L'etichetta dovrà essere indicata con i due punti finali.

Caricamento di dati da una tabella caricata in precedenza

Etichette di tabella

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 Qlik Sense nella definizione di un campo della tabella.

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

wherewhere è 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 byorder 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.

Ulteriori informazioni

 

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!