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