Replace
El prefijo Replace se puede añadir a cualquier sentencia LOAD o SELECT en el script para especificar que la tabla cargada debe reemplazar a otra tabla. También especifica que esta sentencia debe ejecutarse en una carga parcial. El prefijo Replace también se puede usar en una sentencia Map.
Sintaxis:
Replace[only][Concatenate[(tablename)]] (loadstatement | selectstatement)
Replace[only]mapstatement
Durante una recarga normal (no parcial), la construcción ReplaceLOAD funcionará como una sentencia LOAD normal pero irá precedida por una sentencia DropTable. Primero se eliminará la tabla anterior, luego se generarán los registros y se almacenarán como una tabla nueva.
Si se utiliza el prefijo Concatenate o si existe una tabla con el mismo conjunto de campos, esta será la tabla que hay que eliminar. De lo contrario, no habrá tabla que eliminar y la construcción ReplaceLOAD será idéntica a un LOAD normal.
Una recarga parcial hará lo mismo. La única diferencia es que siempre hay una tabla de la ejecución del script anterior para eliminar. La construcción ReplaceLOAD siempre eliminará primero la tabla anterior y luego creará una nueva.
La sentencia Replace Map...Using hace que la correspondencia se produzca también durante la ejecución parcial de script.
Argumentos:
Argumento | Descripción |
---|---|
only | Es un cualificador opcional que indica que la sentencia debe ser ignorada durante recargas normales (no parciales). |
Ejemplos y resultados:
Ejemplo | Resultado |
---|---|
Tab1: Replace LOAD * from File1.csv; |
Durante la recarga normal y parcial, la tabla Tab1 de QlikView se borra inicialmente. Después, los nuevos datos se cargan desde File1.csv y se almacenan en Tab1. |
Tab1: Replace only LOAD * from File1.csv; |
Durante una recarga normal, esta sentencia se ignora. Durante la recarga parcial, cualquier tabla de QlikView que antes se llamara Tab1 se borra inicialmente. Después, los nuevos datos se cargan desde File1.csv y se almacenan en Tab1. |
Tab1: LOAD a,b,c from File1.csv; Replace LOAD a,b,c from File2.csv; |
Durante una recarga normal, el archivo File1.csv se lee primero en la tabla Tab1 de QlikView, pero luego se borrará de inmediato y se sustituirá por los datos nuevos cargados desde File2.csv. Todos los datos desde File1.csv se pierden. Durante una recarga parcial, se borra inicialmente toda la tabla Tab1 de QlikView. Luego es reemplazada por nuevos datos cargados desde File2.csv. |
Tab1: LOAD a,b,c from File1.csv; Replace only LOAD a,b,c from File2.csv; |
Durante una recarga normal, los datos se cargan desde File1.csv y se almacenan en la tabla Tab1 de QlikView. File2.csv se descarta. Durante una recarga parcial, se borra inicialmente toda la tabla Tab1 de QlikView. Luego es reemplazada por nuevos datos cargados desde File2.csv. Todos los datos desde File1.csv se pierden. |