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

gol*_*ter 5 sql oracle sql-loader

我正在使用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
  )
Run Code Online (Sandbox Code Playgroud)

但是如果我有超过1000个文件,我不想多次使用INFILE,那么我必须在控制文件脚本中提到1000次INFILE.

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

谢谢,Bithun

wol*_*lφi 10

解决方案1:您可以将1000个文件连接到大文件上,然后由SQL*Loader加载.在unix上,我会使用类似的东西

cd path
cat file*.csv > all_files.csv
Run Code Online (Sandbox Code Playgroud)