Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi there
I have multiple (monthly) .csv files which need to be imported. Each is named EmpFinFile 201507, EmpFinFile201508, EmpFinFile201509, etc. How do I create a script that imports each file using 1 load which loops or iterates for each month? Instead of having multiple load statements for each file resulting in a very long script!
Use a wildcard load:
LOAD * FROM EmpFinFile*.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
If you do use a wildcard load then all the csv files must have the exact same fields. Otherwise you need a loop like the example in this discussion: loop through to load all files from a folder and its subfolders?
use the following load statement
load * from path/EmpFinFile*.csv
(txt, codepage is 1252, embedded labels, delimiter is ';', msq);
Please make sure all the csv files in the same folder
Hi, you have two options:
-Wildcard load
Load * from EmpFinFile*.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
-Loop through files and load data
For Each File in filelist ($(PathToDirectory)EmpFinFile*.csv')')
YourTable:
LOAD * FROM '$(File)' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
NEXT File;
I prefer looping through files because, when using wildcard load, if directory is empty and there are no files to load Qlikview will throw an error and your script will fail.
Hope this helps,
Hi,
you can include a field in your load statement to distinguish between the different file months like:
LOAD *,
MonthName(Date#(Right(FileBaseName(),6),'YYYYMM')) as FileMonth
From *.CSV ...
hope this helps
regards
Marco
I got identical files (fields) from different systems that I need to merge. One is FCode12.csv, another ist FCode3.csv and so on.
The only difference is the data contained therein, file FCode12.csv contains all 1xx and 2xx errors, FCode3.csv all 3xx errors etc.
I used the proposed technique to have them loaded by use of wildcard (see below for my code), however I get the import as different tables and fields (Error.Fcode, Error1.Fcode ....)
the only difference to your proposed solution with wildcard is, that I have to qualify the importsw, because we got to load other tables that have same field names as other tables. I learned to prevent mixup, you have to use the 'Qualify' statement ...?
Any sugestion how to load those duplicated files?
Note: those files below are the most simple tables. For my application I have to load 12 different CSV files, all with several duplicates to it and partially up to 60 fileds in it ... so loading them 1:1 is not an option, I need to have a bulk import for each cluster ....
Greatful for any tips or hints on how to achive that data load. 🙂
//***************** Table(Tbl) Error from FCode*.csv in /Test subfolder **********************
QUALIFY *;
UNQUALIFY '%*';
Error:
LOAD
Meldung as %MeldungFCode, //Unique Key for this Tbl, link to Tbl Fact_Service
Position,
Schadenscode,
"Kurztext zum Code"
FROM [lib://Belimed/Test/FCode*.csv]
(txt, utf8, embedded labels, delimiter is '\t', msq);
UNQUALIFY *;
please open a new thread for your question
thanks
regards
Marco