我在一个自包含的CSV文件中转储了几个Postgresql表,我希望将其导入到具有匹配模式的Oracle数据库中。我发现了几篇关于如何将数据从一个CSV“表”分发到多个Oracle表的帖子,但我的问题是在同一个文件中有几个不同的CVS“表”。
是否可以指定表分隔符或以某种方式在SQLLDR控制文件中标记新表,或者在将文件提供给SQLLDR之前是否必须手动拆分文件?
答案 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
)
如果您有某种标题行来确定目标表,那么您将不得不事先将其拆分为另一个实用程序。