使用SQL加载器时,如何跳过前两列?

使用SQL加载器时,如何跳过前两列?,sql,sql-loader,Sql,Sql Loader,我得到了一个.csv文件,其中有18列无用数据,然后是10列有用数据,然后是另一列无用数据。是否只需要抓取10列有用的数据,然后跳过其余的?我只想从第19列开始读取文件,在第29列结束。您必须使用填充程序: LOAD DATA INFILE file.csv INTO TABLE test_sqlldr APPEND FIELDS TERMINATED BY ';' TRAILING NULLCOLS ( col1 filler, col2 filler, ... col18

我得到了一个.csv文件,其中有18列无用数据,然后是10列有用数据,然后是另一列无用数据。是否只需要抓取10列有用的数据,然后跳过其余的?我只想从第19列开始读取文件,在第29列结束。

您必须使用
填充程序

LOAD DATA
INFILE file.csv
INTO TABLE test_sqlldr
APPEND
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
( 
  col1 filler,
  col2 filler,
  ...
  col18 filler,
  col19,
  col20,
  ...
  col29
)

你可以找到更多的信息

您必须使用
填充物

LOAD DATA
INFILE file.csv
INTO TABLE test_sqlldr
APPEND
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
( 
  col1 filler,
  col2 filler,
  ...
  col18 filler,
  col19,
  col20,
  ...
  col29
)

你可以找到更多的信息

对于MySQL,它将是:

LOAD DATA
INFILE file.csv
INTO TABLE test_sqlldr
APPEND
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
( 
  @ignore,
  @ignore,
  ...
  @ignore,
  col19,
  col20,
  ...
  col29
)

而MySQL将是:

LOAD DATA
INFILE file.csv
INTO TABLE test_sqlldr
APPEND
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
( 
  @ignore,
  @ignore,
  ...
  @ignore,
  col19,
  col20,
  ...
  col29
)

我以前从未使用过filler,但我认为它只是将NULL而不是数据放入输入表中。对吗?所以我需要输入表上的18列,我只需要用null填充。这将是我的退路,但我希望根本不需要将这18列放在我的输入表中。所以我会跳过1-18,然后第1-10列将填充19-29。这可能吗?只是在我的输入表中添加了额外的列并使用了filler。我以前从未使用过filler,但我认为它只是在输入表中输入了NULL而不是数据。对吗?所以我需要输入表上的18列,我只需要用null填充。这将是我的退路,但我希望根本不需要将这18列放在我的输入表中。所以我会跳过1-18,然后第1-10列将填充19-29。这可能吗?只是在我的输入表中添加了额外的列并使用了填充符。