使用 sqlldr 加载 1500 个 CSV 文件

Loading 1500 CSV files with sqlldr

我有超过 1500 个 CSV 文件要加载到 Oracle 11gR2 中。我在 Windows 环境中使用 sqlldr。我知道我可以按如下方式加载文件,但出于多种原因,这是一种非常糟糕的方式。

load data 
infile 'FILE_1.csv'
infile 'FILE_2.csv'
infile 'FILE_3.csv'
infile 'FILE_4.csv'
infile 'FILE_5.csv'
.
.
.
infile 'FILE_1500.csv'
append
into table MyTable
fields terminated by '  '
trailing nullcols
    (   
        A,
        B,
        C,
        D,
        E
        F,
        G
     )

我正在寻找一种自动将整个文件夹的文件逐个文件加载到数据库中的方法(我不想合并文件,因为它们很大)。

有什么想法吗?

使用EXTERNAL TABLE,将文件名传递给它。在 11gR2 上,您可以使用 PREPROCESSOR DIRECTIVE.

您甚至可以动态传递文件名。看看这个 asktom link 了解更多详情 https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:3015912000346648463