首页 > 数据库 > Oracle > ORACLE 的加载工具SQLLDR应用
SQLLDR包括三个文件:控制文件,数据文件,日志文件;
日志文件包括三种:错误日志文件(*.bad),丢弃日志文件(*.dsc);常规日志文件(*.log)
[@more@]创建一个表;
create table TEST
(
BM NUMBER(8),
BMMC VARCHAR2(20),
SJBM NUMBER(8)
);
数据文件mmr.txt:
13213,aaa,333
12345,bbb,555
12345,ddd,888
创建一个批处理文件do.bat
sqlldr msno/msno@211 control=do.ctl log=D:loaddatalog22.txt;
方法一:在控制文件中直接加载数据;
创建控制文件loaddata.ctl
Load data
infile *
replace into table test
fields terminated by ','
optionally enclosed by ‘’’’
trailing nullcols
(bm ,bmmc ,sjbm )
begindata
13213,aaa,333
12345,bbb,”555”
12345,ddd,888
执行do.bat文件,就可以了加载成功了;optionally enclosed by ‘”’可以去除”555”的双引号;trailing nullcols指没有的数据用NULL填充;
方法二:通过数据文件加载;
创建控制文件loaddata.ctl
Load data
infile 'd:loaddatammr.txt'
replace into table test
fields terminated by ','
(bm ,bmmc,sjbm )
执行do.bat就可以完成加载;
方法三:将一个数据文件同时加载到多个数据表中;
创建控制文件loaddata.ctl
Load data
infile 'd:loaddatammr.txt'
replace into table test
(
bm position(1:5),
bmmc position(*+1:9),
sjbm position(*+1:13)
)
into table testmmr
(
bm position(1:5),
bmmc position(*+1:9),
sjbm position(*+1:13)
)
执行do.bat就可以完成加载;为了装载固定的定位数据,这里必须使用position关键字;不能用关键子terminated,不然不能成功; position(*+1:9)是相对位置,等于position(5+1:9),相对于上一列的结束位置加一,同时注意;position关键字的结束位置必须是该数据结束的绝对列位置;
方法四:有选择条件的多表导入:
创建控制文件loaddata.ctl
Load data
infile 'd:loaddatammr.txt'
replace into table test
when bm = '13213'
(
bm position(1:5),
bmmc position(*+1:9),
sjbm position(*+1:13)
)
when bm =’12345’
into table testmmr
(
bm position(1:5),
bmmc position(*+1:9),
sjbm position(*+1:13)
)
控制文件中的关键字replace,insert,append分别代表替换原数据,插入新数据;增加新数据;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8109090/viewspace-892815/ ,如需转载,请注明出处,否则将追究法律责任。