小编典典

通过SQLLDR将多个csv加载到一个表中

sql

我正在使用SQL LOADER在一个表中加载多个csv文件。我发现的过程非常简单,就像

LOAD
  DATA 
  INFILE '/path/file1.csv'
  INFILE '/path/file2.csv'
  INFILE '/path/file3.csv'
  INFILE '/path/file4.csv'
  APPEND INTO TABLE TBL_DATA_FILE
    EVALUATE CHECK_CONSTRAINTS
    REENABLE DISABLED_CONSTRAINTS
    EXCEPTIONS EXCEPTION_TABLE
  FIELDS TERMINATED BY "," 
  OPTIONALLY ENCLOSED BY '"'
  TRAILING NULLCOLS
  ( 
    COL0,
    COL1,
    COL2,
    COL3,
    COL4
  )

但是我不想多次使用INFILE,因为如果我有1000个以上的文件,那么我必须在控制文件脚本中提及1000次INFILE。

所以我的问题是:是否有其他方法(如任何循环/任何* .csv)加载多个文件而不使用多个infile?

谢谢你


阅读 226

收藏
2021-03-23

共1个答案

小编典典

解决方案1:您可以将1000个文件串联到一个大文件中,然后由SQL*Loader加载该文件。在Unix上,我会使用类似

cd path
cat file*.csv > all_files.csv
2021-03-23