【问题标题】:BTEQ Teradata Import Multiple files into one tableBTEQ Teradata 将多个文件导入一张表
【发布时间】:2017-10-20 00:18:49
【问题描述】:

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

如何调整以下脚本,以便在加载多个文件时导入 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)

【问题讨论】:

    标签: sql import teradata


    【解决方案1】:

    我以前从未尝试过,但快速测试表明您也可以使用= 而不是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;
    =*
    ...
    

    【讨论】:

    • 这真是太棒了,我不知道你能做到。
    • @Andrew:我也不知道 :-)
    • @dnoeth 再次感谢您的帮助和快速响应。这真是太棒了,太简单了!很高兴知道这一点。最好的问候,Jacek
    猜你喜欢
    • 2010-11-23
    • 2014-07-09
    • 2013-09-15
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2018-05-24
    • 2011-06-04
    相关资源
    最近更新 更多