我有 30k+ 具有不同列数、空格分隔的文本文件,任务是将数据、列明智地加载到 1 个大 oracle 表中。详细信息和可能的方法如下:
文本文件 1-
Date Time SiteName CompName ipAdd
jkl mno pqr stu vwx
文本文件 2-
Date CompName ipAdd
abc def ghi
文本文件 3-
Date SiteName
mno pqr
预期的 Oracle 表 -
Date Time SiteName CompName ipAdd
jkl mno pqr stu vwx
abc def ghi
mno pqr
现在,如您所见,有不同数量的“相同”列分布在多个文本文件中。而且我必须将数据加载到 1 个大 oracle 表中。
请注意:
在所有文本文件中,第一列始终是“日期”,并且这些列按顺序出现,即从日期到时间..或日期到 CompName...(从日期开始递增的顺序)
问题是我找不到一种使用 SQL Loader 的方法,它可以区分 2 个不同文本文件中的 2 列和 15 列,即使我在第一行文本文件中有它们的名称,然后加载他们在一张大桌子上。
方法:
- 将所有文本文件合并为 1 个大文本文件并执行某些操作 - 失败
- 试图放置一个分隔符,用于所有文本文件(25 列)中的最大列数,并做一些事情 - 不能
- 在 35k+ 个 oracle 表中加载 35k+ 个文本文件,然后坐下来将这些 35k+ 个 oracle 表组合成 1 个大表 - 由我周围的 PPL 推荐,但它太长了,可能是空间和时间/工作效率低下,所以我寻找一个真正的替代品
请给出你最好的方法。:-(