Jack84
Jack84

Reputation: 79

BTEQ Teradata Import Multiple files into one table

I really stuck with one task. I have approx 15 CSV files to load into one table. All have the same structure and columns and all have the same separator.

How I can adjust below script so I can import File1, File2....File15 as multiple files load ? Do I need to reply this code x15 times?

.RUN FILE = C:\Users\Jacek\logonfile.txt
CREATE SET TABLE LOAD_TEST ,NO FALLBACK ,
 NO BEFORE JOURNAL,
 NO AFTER JOURNAL,
 CHECKSUM = DEFAULT,
 DEFAULT MERGEBLOCKRATIO
 (
  LOG_NUM  CHAR(4) CHARACTER SET LATIN NOT CASESPECIFIC,
  INIT_NUM SMALLINT,
  SUPPLIER VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC )
 PRIMARY INDEX (LOG_NUM)
;

.IMPORT VARTEXT '|' FILE ="C:\Users\Jacek\Desktop\File1.TXT", skip=1;
.REPEAT * PACK 10000;
USING
  LOG_NUM (VARCHAR(4)),
  INIT_NUM  (VARCHAR(100)),
  SUPPLIER (VARCHAR(100)),
INSERT INTO LOAD_TEST
VALUES (
  :LOG_NUM,
  :INIT_NUM,
  :SUPPLIER)

Upvotes: 1

Views: 2218

Answers (1)

dnoeth
dnoeth

Reputation: 60462

I never tried it before, but a quick test showed that you can use = instead of REPEAT for an IMPORT, too. And = is placed after the command :-)

.SET PACK 10000;
.IMPORT VARTEXT '|' FILE ="C:\Users\Jacek\Desktop\File1.TXT", skip=1;
.REPEAT * 
USING
  LOG_NUM (VARCHAR(4)),
  INIT_NUM  (VARCHAR(100)),
  SUPPLIER (VARCHAR(100)),
INSERT INTO LOAD_TEST
VALUES (
  :LOG_NUM,
  :INIT_NUM,
  :SUPPLIER);

.IMPORT VARTEXT '|' FILE ="C:\Users\Jacek\Desktop\File2.TXT", skip=1;
=*

.IMPORT VARTEXT '|' FILE ="C:\Users\Jacek\Desktop\File3.TXT", skip=1;
=*
...

Upvotes: 3

Related Questions