sqlldr使用一个控制文件将多个文件插入到多个表中
问题描述:
我可以使用一个控制文件将数据从多个文件插入到多个表中吗?像:sqlldr使用一个控制文件将多个文件插入到多个表中
load data
INFILE 'C:\Users\shu37\Desktop\emp.csv'
INTO TABLE Emp
TRUNCATE
FIELDS Terminated By ',' OPTIONALLY ENCLOSED BY '"'
(EmpId,EmpName)
INFILE 'C:\Users\shu37\Desktop\dept.csv'
INTO TABLE department
TRUNCATE
FIELDS Terminated By ',' OPTIONALLY ENCLOSED BY '"'
(DId,DName)
我有一个500桌,我想从一个同样数量的CSV(每表一个CSV)导入数据,我不能写500个控制文件。
即使我写了我需要一个上标来在一个循环中运行所有500个控制文件,这似乎有点低效。
我确定应该有办法用SQLDLR来做到这一点。
任何想法?
答
不,我相信你需要数据泵导出/导入工具,而不是: http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm
仅供参考这里的SQLLOADER参考: http://docs.oracle.com/cd/B28359_01/server.111/b28319/ldr_control_file.htm
或者,如果你能得到命名为表中的数据文件,你可以编写一个程序为每个文件/表和一个主SQL文件生成控制文件来调用它们,但这可能会变得很难看。