2017-10-19 101 views
1

我真的坚持一项任务。 我有大约15个CSV文件加载到一个表中。全部具有相同的结构和列,并且都具有相同的分隔符。BTEQ Teradata将多个文件导入一张表

如何调整下面的脚本,以便我可以导入File1,File2 .... File15作为多个文件加载? 我需要回复此代码x15次吗?

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

回答

2

我从来没有尝试过,但快速测试显示,你可以使用=而不是REPEAT对于导入了。而=放置命令后:-)

.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

这真是真棒,我不知道你能做到这一点。 – Andrew

+0

@Andrew:我也不知道,:-) – dnoeth

+0

@dnoeth再次感谢您的帮助和快速回复。 这真的很棒,很简单!很高兴知道。 最好的问候, Jacek – Jack84

相关问题