Saltar al contenido principal Saltar al contenido complementario

Load

En un contexto de modificación de gráficos, la instrucción LOAD carga datos adicionales al hipercubo a partir de datos definidos en el script o desde una tabla previamente cargada. También se puede cargar datos desde conexiones analíticas.

Nota informativaLa sentencia LOAD debe llevar o bien el prefijo Replace o Add, o será rechazada.

Sintaxis:  

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 ]

Argumentos:  

Argumentos
Argumento Descripción
fieldlist fieldlist ::= ( * | field {, * | field } )

Una lista de los campos que se van a cargar. Usar * como una lista de campos indica todos los campos de la tabla.

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

La definición de campo debe contener siempre una referencia literal a un campo existente, o a una expresión.

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

fieldname es un texto que es idéntico a un nombre de campo de la tabla. Tenga en cuenta que el nombre de campo debe ir entre comillas dobles rectas o corchetes si contiene por ejemplo espacios. A veces los nombres de campo no están disponibles de forma explícita. Entonces se usa una nomenclatura diferente:

@fieldnumber representa el número de campo en un archivo de tabla delimitada. Debe ser un entero positivo precedido por "@". La numeración se hace siempre desde 1 hasta el número de campos.

@startpos:endpos representa las posiciones de inicio y final de un campo en un archivo con registros de longitud fija. Las posiciones deben ser ambas números enteros positivos. Los dos números deben estar precedidos por "@" y separados por dos puntos. La numeración se hace siempre desde 1 hasta el número de posiciones. En el último campo, n se usa como posición final.

  • Si @startpos:endpos va seguido inmediatamente por los caracteres I o U, los bytes leídos se interpretarán como un binario firmado (I) o un entero no firmado (U) (orden de bytes de Intel). El número de posiciones leídas debe ser 1, 2 o 4.
  • Si @startpos:endpos va inmediatamente seguido por el carácter R, los bytes leídos se interpretarán como un número real binario (IEEE de 32 bits o coma flotante de 64 bits). El número de las posiciones leídas debe ser 4 u 8.
  • Si @startpos:endpos va inmediatamente seguido por el carácter B, los bytes leídos se interpretarán como números BCD (Binary Coded Decimal) según el estándar COMP-3. Se puede especificar cualquier número de bytes.

expression puede ser una función numérica o una función de cadena basada en uno o varios campos más de la misma tabla. Para más información, vea la sintaxis de las expresiones.

as se usa para asignar un nuevo nombre al campo.

inline inline se usa si los datos se deben escribir dentro del script y no se cargan desde un archivo.

data ::= [ text ]

Los datos introducidos mediante una cláusula inline deben estar entre comillas dobles o entre corchetes. El texto en su interior se interpreta de la misma manera que el contenido de un archivo. Por lo tanto, cuando inserte una nueva línea en un archivo de texto, también debe hacerlo en el texto de una cláusula inline, es decir, pulsando la tecla Intro al escribir la secuencia de script. El número de columnas viene definido por la primera línea.

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

La especificación de formato consiste en una lista con varios elementos de especificación entre paréntesis.

resident resident se usa si los datos se deben cargar desde una tabla previamente cargada.

table label es una etiqueta que precede a la sentencia LOAD que creó la tabla original. La etiqueta debe ir seguida de dos puntos al final de la línea.

Cargar datos de una tabla previamente cargada

Etiquetas de tabla

extension

Puede cargar datos desde conexiones analíticas. Necesita usar la cláusula extension para llamar a una función definida en el complemento plugin (SSE) de extensión del lado del servidor o evaluar un script.

Puede enviar una única tabla al complemento SSE y devuelve una sola tabla de datos. Si el complemento plugin no especifica los nombres de los campos que se devuelven, los campos se denominarán Field1, Field2 y así sucesivamente.

Extension pluginname.functionname( tabledescription );

  • Cargar datos utilizando una función en un complemento plugin SSE

    tabledescription ::= (table { ,tablefield} )

    Si no indica campos de tabla, los campos se usarán en orden de carga.

  • Cargar los datos evaluando un script en un complemento plugin SSE

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

Los tipos de datos se detectan automáticamente en las conexiones analíticas. Si los datos no tienen valores numéricos y al menos una cadena de texto no nula, el campo se considera texto. En cualquier otro caso, se considera numérico.

Puede forzar el tipo de datos encerrando un nombre de campo en String() o Mixed().

  • String() obliga al campo a ser de texto. Si el campo es numérico, se extrae la parte de texto del valor dual, no se realiza ninguna conversión.
  • Mixed() obliga al campo a ser dual.

String() o Mixed() no se pueden usar fuera de las definiciones de campo de la tabla de extension y no puede usar otras funciones de Qlik Sense en una definición de campo de tabla.

Puede leer más sobre las conexiones analíticas en el repositorio de GitHub. qlik-oss/server-side-extension

where where es una cláusula utilizada para indicar si un registro debe incluirse en la selección o no. La selección se incluye si criterion es True.

criterion es una expresión lógica

while

while es una cláusula utilizada para indicar si un registro debe leerse repetidamente. Se lee el mismo registro siempre y cuando el criterion sea True. Para ser útil, una cláusula while debe incluir por lo general la función IterNo( ).

criterion es una expresión lógica

group by

group by es una cláusula que sirve para definir sobre qué campos deben agregarse (agruparse) los datos. Los campos de agrupación deberán incluirse de alguna manera en las expresiones cargadas. Ningún otro campo más que los de agrupación deberá emplearse fuera de las funciones de agregación en las expresiones cargadas.

groupbyfieldlist ::= (fieldname { ,fieldname } )

order by order by es una cláusula utilizada para clasificar los registros de una tabla residente antes de que la sentencia load los procese. La tabla residente puede ordenarse por más de un campo en orden ascendente o descendente. La ordenación se hace principalmente por valores numéricos y secundariamente por valor de cotejo nacional. Esta cláusula solo puede utilizarse cuando al fuente de datos es una tabla residente.

Los campos de ordenación especifican por qué campos está ordenada la tabla residente. El campo puede especificarse por su nombre o por su número en la tabla residente (el primer número de campo es el 1).

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

sortorder es o bien asc ascendente o desc descendente. Si no se especifica sortorder, se asume asc.

fieldname, path, filename y aliasname son cadenas de texto que representan lo que sus respectivos nombres implican. Cualquier campo de la tabla fuente se puede usar como fieldname. Sin embargo, los campos creados a través de la cláusula (aliasname) están fuera del alcance y no se pueden usar dentro de la misma sentencia load.

Más información

 

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.