我可以使用一个控制文件将数据从多个文件插入多个表吗?像:
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做到这一点。
有什么想法吗?
答案 0 :(得分:0)
不,我相信您需要数据泵导出/导入功能: 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文件来调用它们,但这可能会变得很难看。