使用SQLLDR将多个连接CSV文件加载到Oracle中

时间:2010-05-04 15:30:42

标签: oracle sql-loader

我在一个自包含的CSV文件中转储了几个Postgresql表,我希望将其导入到具有匹配模式的Oracle数据库中。我发现了几篇关于如何将数据从一个CSV“表”分发到多个Oracle表的帖子,但我的问题是在同一个文件中有几个不同的CVS“表”。

是否可以指定表分隔符或以某种方式在SQLLDR控制文件中标记新表,或者在将文件提供给SQLLDR之前是否必须手动拆分文件?

1 个答案:

答案 0 :(得分:3)

这取决于您的数据。如何确定一行的目的地?如果你可以根据行中的数据确定哪个表,那么使用WHEN就可以了。

LOAD DATA
  INFILE bunchotables.dat
INTO TABLE foo WHEN somecol = 'pick me, pick me' (
  ...column defs...
)
INTO TABLE bar WHEN somecol = 'leave me alone' (
  ... column defs
)

如果您有某种标题行来确定目标表,那么您将不得不事先将其拆分为另一个实用程序。