请教sqlldr把多个格式一样的文件导入到一个表中 请教各位大虾,因为要导入的文件名中有日期,所以无法在控制文件中指定多个infile来完成。是否能在sqlldr命令中完成。如“sqlldr 连接数据库 data= ”。或者其他方法。谢谢了ps:一个文件一个文件逐个load的方法就免了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只能在control文件中指定,文件名有日期也没关系啊,你把control file结构发上来看看 控制文件就是一般很普通的。因为要导入的文件每天有会有,比如说今天是20090902data.txt文件,明天就是要导入20090903data.txt文件了。这样的话,控制文件就得每天动态生成。 可以在控制文件中不指定数据文件名,而是用data参数来指定数据文件,控制文件中把INFILE 部分去掉就可以了。 大侠,请教用data参数如何写呢? 能否给个例子参考下,谢谢! 比如表名为dept,有三个数据项,其字段名称和类型为名称 字段类型DEPTNO NUMBER(2)DNAME VARCHAR2(10)LOC VARCHAR2(10)有数据文件,内容为10,Sales,USA 20,Accounting,"Virginia,USA" 30,Consulting,Virginia 40,Finance,Virginia则控制文件ctl.txt的内容为LOAD DATAINTO TABLE DEPTAPPENDFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'(DEPTNO,DNAME,LOC)sqlldr命令为sqlldr scott/tiger control=ctl.txt data=df.txt 您这个data=df.txt一次只导入一个文件,我想有没有办法data参数关联多个文件,一次进行导入呢? thanks lot 刚查了下,控制文件中可以指明多个INFILE,如一个控制文件的INFILE部分可以是INFILE mydat1.dat BADFILE mydat1.bad DISCARDFILE mydat1.dis INFILE mydat2.dat INFILE mydat3.dat DISCARDFILE mydat3.dis INFILE mydat4.dat DISCARDMAX 10 0则对于上面的例子,修改如下:----------------------名称 字段类型 DEPTNO NUMBER(2) DNAME VARCHAR2(10) LOC VARCHAR2(10) 有数据文件df1.txt,内容为 10,Sales,USA 20,Accounting,"Virginia,USA" 30,Consulting,Virginia 40,Finance,Virginia 有数据文件df2.txt,内容为 10,Sales,USA 20,Accounting,"Virginia,USA" 30,Consulting,Virginia 40,Finance,Virginia 则控制文件ctl.txt的内容为 LOAD DATA INFILE df1.txtINFILE df2.txtINTO TABLE DEPT APPEND FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (DEPTNO, DNAME, LOC) sqlldr命令为 sqlldr scott/tiger control=ctl.txt------------------------------------------ 大虾,我前面的回复就说了,我的文本文件名中有日期,如果使用infile的方式,就需要每天动态生成ctl文件,或者手工修改控制文件了。我想有没有办法通过data参数确定,这样日期就可以从批处理bat文件中传进去了。 不知道我说明白了没有 您的意思是写个bat,把我要导入的文本文件合并成一个文件。然后再用sqlldr进行导入吗? 我试过了,data参数只能接受一个文件,不能接受多个文件,实在是没办法了.看看用其他方式把文本文件给处理一下,合并成一个文件再用sqlldr 关于存储过程赋权限 初学ORACLE,一个简单的删除问题 请问复杂的数据转换的时候大家用的什么啊 面试题目,这个大表如何设计呢? 3:初学Oracle,一口气问6个小问题, 3/6: 有关格式化系统时间. 100分请教各位大哥一个问题分不够可以加!!! ubuntu12.10 装oracle装哪个版本好?最新的是哪个? 大神帮忙 有个问题请教大家!!! 请问高手在delphi中如何写sql语句实现逻辑备份和恢复oracle数据库???? 一个比较难的分组排序设值的update sql语句问题! 用户hibernate如何读取oracle中的clob
DEPTNO NUMBER(2)
DNAME VARCHAR2(10)
LOC VARCHAR2(10)有数据文件,内容为
10,Sales,USA
20,Accounting,"Virginia,USA"
30,Consulting,Virginia
40,Finance,Virginia则控制文件ctl.txt的内容为
LOAD DATA
INTO TABLE DEPT
APPEND
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(DEPTNO,
DNAME,
LOC)sqlldr命令为
sqlldr scott/tiger control=ctl.txt data=df.txt
INFILE mydat1.dat BADFILE mydat1.bad DISCARDFILE mydat1.dis
INFILE mydat2.dat
INFILE mydat3.dat DISCARDFILE mydat3.dis
INFILE mydat4.dat DISCARDMAX 10 0则对于上面的例子,修改如下:
----------------------
名称 字段类型
DEPTNO NUMBER(2)
DNAME VARCHAR2(10)
LOC VARCHAR2(10) 有数据文件df1.txt,内容为
10,Sales,USA
20,Accounting,"Virginia,USA"
30,Consulting,Virginia
40,Finance,Virginia 有数据文件df2.txt,内容为
10,Sales,USA
20,Accounting,"Virginia,USA"
30,Consulting,Virginia
40,Finance,Virginia 则控制文件ctl.txt的内容为
LOAD DATA
INFILE df1.txt
INFILE df2.txt
INTO TABLE DEPT
APPEND
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(DEPTNO,
DNAME,
LOC) sqlldr命令为
sqlldr scott/tiger control=ctl.txt
------------------------------------------
然后再用sqlldr进行导入吗?