2017-10-19 46 views
1

J'ai vraiment bloqué avec une tâche. J'ai environ 15 fichiers CSV à charger dans une table. Tous ont la même structure et les mêmes colonnes et ont tous le même séparateur. Comment puis-je ajuster ci-dessous le script afin que je puisse importer File1, File2 .... File15 comme plusieurs fichiers de charge? Dois-je répondre x15 fois à ce code?BTEQ Teradata Importer plusieurs fichiers dans une table

.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) 

Répondre

2

Je ne ai jamais essayé avant, mais un test rapide a montré que vous pouvez utiliser = au lieu de REPEAT pour une importation, aussi. Et = est placé après la commande :-)

.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; 
=* 
... 
+0

C'est vraiment génial, je ne savais pas qu'on pouvait faire ça. – Andrew

+0

@Andrew: Je ne le savais pas aussi :-) – dnoeth

+0

@dnoeth Merci beaucoup pour votre aide et votre réponse rapide. C'est vraiment génial et tellement simple! Super de savoir ça. Meilleures salutations, Jacek – Jack84